• Vue——自定义组件实现vmodel


    Vue有数据单向传递的特点,但是实际业务中,会产生这样的需求:

    A组件调用B组件,A组件通过props向B组件传递一个值X,B组件经过用户操作,X有了一个新的值,A组件想获取这个值,该如何操作?

    这时候,就是要在自定义组件中实现v-model,实现数据双向绑定,将子组件中的数值传递回父级容器。 

    A组件的语法如下,正常调用即可: 

    <template>
          <form-input v-model="formInput.value"></form-input>
    </template>
    

    B组件基本语法如下: 

    <template>
      <!--注意此处的值,要用computed之后的值-->
      <input v-model="valueModel"/>
    </template>
    
    <script>
        export default {
            name: "form-input"
            , props: {
                value: {type: [Array, String, Number, Date, Boolean]},
            }, model: {
                //需要定义哪一个props可以用v-model绑定属性
                prop: 'value',
                //声明一个事件,调用之后,就会改变父级容器的值
                event: 'handlerValueChange'
            }, computed: {
                valueModel: {
                    get: function () {
                        //实际使用的是value值
                        return this.value;
                    },
                    set: function (val) {
                        //侦听到setter()事件,将值传递回父级组件
                        this.$emit('handlerValueChange', val);
                    }
                }
            }
        }
    </script>
    疯狂的妞妞 :每一天,做什么都好,不要什么都不做! 文中有不妥或者错误的地方还望指出,如果觉得本文对你有所帮助不妨【推荐】一下!如果你有更好的建议,可以给我留言讨论,共同进步!
  • 相关阅读:
    unity 3d 之合并网格和贴图(combine mesh and texture)
    哈希表(散列表)原理详解
    二叉树-你必须要懂!(二叉树相关算法实现-iOS)
    浅谈数据结构-二叉树
    python中的日志操作和发送邮件
    python实现自定义接口
    python 操作excel
    两个redis之间迁移的python实现
    python对redis的连接和操作
    python3导入自定义模块
  • 原文地址:https://www.cnblogs.com/chenss15060100790/p/15701539.html
Copyright © 2020-2023  润新知