• 自定义组件实现双向数据绑定


    vue自定义组件双向数据绑定:

    定义组件component:

    子组件:

    html

    <input type="text" @input="handleInput" :value="value">

    js
    <script>
    export default {
    name: "component",
    props:['value'],
    methods:{
    handleInput (e) {
    this.$emit('input',e.target.value)
    }
    }
    }
    父组件:
    html:
    <InputText :value="value" @input="value = arguments[0]" ></InputText>
    js:
    <script>
    import InputText from './component'
    export default {
    name: 'HelloWorld',
    components:{
    InputText
    },
    data () {
    return {
    value: '113'
    }
    }
    }
    在这里子组件通过方法handleInput发射事件input,通过props接收父组件的传递给子组件的value值,父组件负责监听子组件的发射的事件input,得到的值value是第一个参数
    因此可以可以写成v-model="value",如下:
    父组件
    <InputText v-model="value"></InputText>
    子组件:
    <input type="text" @input="handleInput" :value="value1">
    这样就实现了自定义组件的双向数据绑定
    也可以在子组件中加入model对象定义从父组件获取的数据及发射的事件方法,如下:
    html:
    <input type="text" @input="handleInput" :value="value1">

    js:
    <script>
    export default {
    name: "component",
    model :{
    prop:'value1',
    event:'change'
    },
    props:['value1'],

    methods:{
    handleInput (e) {
    this.$emit('change',e.target.value)
    }
    }
    }
    在这里model对象定义父组件获取的数据value和向父组件监听的时间change


     
     
  • 相关阅读:
    行为模式-模板方法
    行为模式-策略模式
    行为模式-观察者 模式
    行为模式-责任链模式
    python-json
    mongo资料
    用with管理lock锁
    枚举类使用
    db2常见操作命令
    trancate immediate reuse storage
  • 原文地址:https://www.cnblogs.com/zhx119/p/10286707.html
Copyright © 2020-2023  润新知