zoukankan      html  css  js  c++  java
  • vue 中 v-model 和 .sync修饰符

    v-model  

     1 <input v-model="searchText"> 
     2 
     3 等价于
     4 <input
     5   v-bind:value="searchText"
     6   v-on:input="searchText = $event.target.value"
     7 >
     8 当用在组件上时,v-model 则会这样:
     9 <custom-input
    10   v-bind:value="searchText"
    11   v-on:input="searchText = $event"
    12 ></custom-input>
    13 
    14 Vue.component('custom-input', {
    15   props: ['value'],
    16   template: `
    17     <input
    18       v-bind:value="value"
    19       v-on:input="$emit('input', $event.target.value)"
    20     >
    21   `
    22 })
    23 
    24 //父组件
    25  <vModel v-model="textValue"  @focus="showValue" class="username-input" placeholder="Enter your username" :a='1'></vModel>
    26 //子组件
    27 <template>
    28         <input type="text" v-bind='$attrs' :value="value" @input="input">
    29    <input :value="value" @change="change">
    30 </template>
    31 <script>
    32   
    33 inheritAttrs: false, //当在子组件中加入inheritAttrs:false时class等属性就不会自动加到根元素上了。
    34  
    35 // model: {
    36 // //一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框
    37 // //等类型的输入控件可能会将 value 特性用于不同的目的。model 选项可以用来避免这样的冲突:
    38 // prop: "value",
    39 // event: "change"
    40 // },
    41   
    42 props: ["value"],
    43   
    44 methods: {
    45 input(e) {
    46 this.$emit("input", e.target.value);
    47 console.log(e.target.value);
    48 }
    49 // change(e) {
    50 // this.$emit("change", e.target.value);
    51 // console.log(e.target.value);
    52 // }
    53 },
    54 
    55 </script>
     

    .sync修饰符

     1 //父组件
     2  <Sync  v-bind:title.sync="title"></Sync>   等价于       <Sync :title="title" @upDate.title = 'title=$event'></Sync>
     3 
     4 
     5 //子组件
     6 <template>
     7   <a href="javascript:void(0);" @click="changeValue">{{title}}</a>
     8 </template>
     9 <script>
    10 export default {
    11   props:{
    12   title:{
    13     default:'1',
    14     type:String
    15    }
    16   },
    17   data(){
    18     return{
    19 
    20     }
    21   },
    22 methods:{
    23   changeValue(){
    24     this.$emit('update:title', 11111111)
    25     }
    26   }
    27 }
    28 </script>
    29 <style lang="sass" scoped>
    30 
    31 </style>



      

     

  • 相关阅读:
    Django -- 模板系统
    CSRF_TOKEN
    MySQL的sql_mode模式说明及设置
    程序员必备的600单词
    前端 -- jQuery
    datatime模块
    github高效搜索
    Mac上Homebrew常用命令总结
    对比System.currentTimeMillis()、new Date().getTime()、System.nanoTime()
    MACOS安装使用kafka
  • 原文地址:https://www.cnblogs.com/cuikaitong/p/9639452.html
Copyright © 2011-2022 走看看