• 很乱,临时保存,自定义v-model


     1 <!DOCTYPE html>
     2 <html>
     3   <head>
     4     <meta charset="utf-8">
     5     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     6     <title>learn1</title>
     7   </head>
     8   <body>
     9 
    10 
    11       <template    id="hello">
    12           <h1>{{msg}}    {{user}}</h1>
    13       </template>
    14 
    15       <template    id="form">
    16           <div>
    17               <input    :value="value"    type="text"    id="name"    v-on:input="onInput">
    18           </div>
    19       </template>
    20 
    21       <template id='c'>
    22         <input type="checkbox"    v-on:change="onChange"/>
    23       </template>
    24 
    25       <template    id="greetings">
    26           <div>
    27               <my-checkbox v-model='f' value="some value" ></my-checkbox>
    28               <h1>{{f}}</h1>
    29               <hr>
    30               //此处v-model=kk,目的是zz子组件将自己的值传递给父组件的hk
    31               //kk=112,是将父组件的112,或者父组件的其他值传递给子组件
    32               //也就是说在自定义模板上定义v-mode目的是向外传递
    33               //kk=112或其他类似属性,目的是向内传递给自己定义的模板的属性
    34               <zz v-model='hk' kk="112"></zz>
    35           </div>
    36       </template>
    37 
    38       <template id="fff" >
    39         <label>
    40           //这里的:checked是input自带属性,不是我们定义的,它接收checkval方法计算的值
    41           //:kk="kk"对应上面的 zz标签里的 kk=112,可以理解将112传递给kk,kk传递给:kk
    //这个 checkval是计算属性,将计算结果传递给:checked,这个checkVal作用是,在父组件里使用子组件,在子组件上的v-model上的值传递给子组件
    42 <input type="radio" :checked="checkVal" :kk="kk" @change="update"> 43 {{ modelVal }} 44 </label> 45 </template> 46 47 <div id="app"> 48 <greetings-component></greetings-component> 49 </div> 50 <!-- built files will be auto injected --> 51 </body> 52 </html>
      1 // The Vue build version to load with the `import` command
      2 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
      3 import Vue from 'vue'
      4 import router from './router'
      5 //import ElementUI from 'element-ui'
      6 //import 'element-ui/lib/theme-chalk/index.css'
      7 
      8 //import App from './App'
      9 
     10 Vue.config.productionTip = false
     11 //Vue.use(ElementUI)
     12 
     13 
     14 Vue.component('hello-component',    {
     15   template: '#hello',
     16   data:    function    ()    {
     17       return    {
     18           msg:    'Hello'
     19       }
     20   },
     21   props:    ['user']
     22 });
     23 
     24 
     25 Vue.component('form-component',    {
     26   template:    '#form',
     27   props:    ['value'],
     28   methods:    {
     29     onInput:    function    ()    {
     30         this.$emit('input',    event.target.value)
     31     }
     32 }
     33 });
     34 
     35 Vue.component('zz',{
     36   template:'#fff',
     37   model: {
     38     //这里的modlVal ,如果不自己定义,默认是prop:'value',input类似标签
     39     //将值存进value里,我们声明了ModelVal,就不存进value里,而是存进modelVal里
     40     prop: 'modelVal',
     41     event: 'change'
     42   },
     43   props: {
     44     value: {
     45       type: Boolean,
     46     },
     47     modelVal: {
     48       default: ""
     49     },
     50     label: {
     51       type: String
     52     },kk:{
     53       type:String
     54     }
     55   },
     56   computed: {
     57     checkVal() {
     58       console.log("----------")
     59       console.log(this.modelVal)
     60       console.log(this.kk)
     61       console.log("----------")
     62       console.log( this.modelVal === this.value)
     63       return this.modelVal === this.value
     64     }
     65   },
     66   methods: {
     67     update() {
     68       this.$emit('change', this.checkVal)
     69     }}
     70 })
     71 
     72 Vue.component('my-checkbox', {
     73   template:'#c',
     74   model: {
     75     //这里就是hello存储true或者false ,替代false
     76     prop: 'hello',
     77     event: 'change'
     78   },
     79   props: {
     80     hello:Boolean, //这里也要先声明hello,
     81     value: String
     82   },
     83   methods:{
     84     onChange () {
     85       console.log(this.hello)
     86       console.log(this.value)
     87       console.log(event.target.checked)
     88         this.$emit('change',event.target.checked)
     89 
     90     }
     91   }
     92 })
     93 
     94 Vue.component('greetings-component',    {
     95   template:    '#greetings',
     96   data:    function    ()    {
     97       return    {
     98           user:    'heroaa',
     99           foo:'hello',
    100           f:true,
    101           world:'world',
    102           hk:"",
    103           modelVal:''
    104       }
    105   },
    106   methods:{
    107     get (v) {
    108       console.log(v)
    109     }
    110   }
    111 });
    112 
    113 /* eslint-disable no-new */
    114 new Vue({
    115   el: '#app',
    116   data:{
    117     user:'hero'
    118   }
    119 })
  • 相关阅读:
    Strust2学习笔记
    EL与OGNL区别
    十进制与其他进制转换
    JSTL
    <jsp:include>和<%@include%>区别
    AngularJS 内置过滤器
    ubuntu下swift安装
    ubuntu下gerrit 安装部署
    java日期操作
    SpringMVC GET请求中文数据传递到Server端乱码
  • 原文地址:https://www.cnblogs.com/or2-/p/8438475.html
Copyright © 2020-2023  润新知