zoukankan      html  css  js  c++  java
  • vue 自定义组件使用v-model(组件通信方式1)

    父组件通过v-model传递值给子组件时,会自动传递一个value的prop属性,在子组件中通过this.$emit(‘input’,val)自动修改父组件v-model绑定的值
    child:
    <template>
    <div>
    <input type="text" v-model="mymessage" @change="changeValue">
    </div>
    </template>

    <script>
    export default {
    name: "child",
    model:{
    prop: "mymessage",
    event: "change"
    },这段代码可以忽略
    props:{
    value:String //v-model会自动传递一个字段为value的prop属性
    },
    data(){
    return {
    mymessage:this.value
    }
    },
    methods:{
    changeValue(){
    this.$emit('input',this.mymessage);//通过如此调用可以改变父组件上v-model绑定的值
    }
    }
    }
    </script>
    parent:
    <template>
    <div>
    <p>this is parent compoent!</p>
    <p>{{message}}</p>
    <child v-model="message"></child>
    </div>
    </template>

    <script>
    import child from '../components/child'
    export default {
    name: "parent",
    data(){
    return {
    message:'hello'
    }
    },
    components:{
    child
    }
    }
    </script>
    以上代码可以写成子组件通过接收props父亲传递的数据,子组件通过$emit发射事件将父组件的input值message更改,代码如下:
    child:
    <template>
    <div>
    <input type="text" v-model="mymessage" @change="changeValue">
    </div>
    </template>

    <script>
    export default {
    name: "childOne",
    props:{
    value:String, //v-model会自动传递一个字段为value的prop属性
    },
    data(){
    return {
    mymessage:this.value
    }
    },
    methods:{
    changeValue(){
    this.$emit('input',this.mymessage);//通过如此调用可以改变父组件上v-model绑定的值
    }
    }
    }
    </script>
    parents:
    <template>
    <div>
    <p>{{message}}</p>
    <childone @input="handleMessage"></childone>//监听子组件发射的事件input,将input的value值更改

    </div>
    </template>

    <script>
    import childone from '../components/childOne'
    export default {
    name: "parentOne",
    components:{
    childone
    },
    data(){
    return {
    message:'hello'
    }
    },
    methods:{
    handleMessage(val){
    this.message = val
    }
    }
    }
    </script>

     

     
     
  • 相关阅读:
    Java基础教程:对象比较排序
    算法:深度优先搜索
    微信小程序开发:学习笔记[5]——JavaScript脚本
    微信小程序开发:学习笔记[4]——样式布局
    设计模式:学习笔记(8)——装饰器模式
    设计模式:学习笔记(7)——原型模式
    设计模式——单例模式解析
    玩转Android之数据库框架greenDAO3.0使用指南
    Android开发工具——Android Studio调试技巧
    VR开发的烦恼——范围限制
  • 原文地址:https://www.cnblogs.com/zhx119/p/10535268.html
Copyright © 2011-2022 走看看