zoukankan      html  css  js  c++  java
  • 自定义组件实现双向绑定v-model

      自定义组件实现 v-model 双向绑定,首先要先明白 v-model,这个指令到底实现了什么?

    v-model实际做的事情就是:传入一个value属性值,双向绑定会默认监听input事件并返回一个值
    在子组件 emit 一个 input 事件,并返回一个值,父组件调用 v-model 的时候会默认执行这个时间
    举个例子1:
      # 正常写法
      <input type="text" v-model="userName" />
      # 等价于这种写法
      <input type="text" :value="userName" @input="userName = $event.target.value" />

    举个例子2:
      # 自定义组件 <ButtonComponent /> 实现双向绑定
        ButtonComponent组件的写法:
        <button
          v-for="(item, index) in tabOptions"
          :key="item.$value"
          @click="handleTabSelect(item)">
          {{ item.$text }}
        </button>

        data:

          tabOptions = [{

            $text: "本地选择",

            $value: "local"

          } , {

          $text: "COS选择",

          $value: "cos"

          }] 

        methods:
          handleTabSelect(item) {

            // 子组件的input时间,当父组件的使用v-model的时候会触发
            this.$emit('input', item.$value);
        }

      使用组件 <ButtonComponent /> 直接使用v-mode的方式就能读取数据了

      <ButtonComponent v-model="tabValue" />

      等价于

      <ButtonComponent @input="handleValue"/>  

      data:

      tabValue="",

      methods:

      handleValue(value){

        this.tabValue = value;

      }

  • 相关阅读:
    两个进程之间的通讯——pipe 管道
    if if 和 if elif 的区别
    python处理大文件——文件流处理
    DNA甲基化及其测量方法(转)
    windows 服务器安装python及其基本库
    在linux系统个人目录下安装新版python
    python 列表中 [[], [], []] 和 3*[[]]差异
    Python脚本打包为exe文件
    GC偏好的校正与偏好程度的评估
    荧光分子的dynamic quenching 和 通常说的quenching的区别?
  • 原文地址:https://www.cnblogs.com/ChineseLiao/p/11401607.html
Copyright © 2011-2022 走看看