数据双向绑定v-modal

v-model

v-model就实现了双向数据绑定,实际上它就是通过Vue提供的事件机制。即在子组件通过$emit()触发一个事件,在父组件使用v-on来监听对应的事件并修改相应的数据。
input的v-model就是通过<input :value="value" @input="input"/>

封装一个input组件,v-model实现

两个注意点:

假设不是使用的value属性和input事件,而是使用string属性和strChange事件。通过mode属性设置
爷父孙组件,父组件通过computed实现

// 父组件
<my-input v-model="value"></my-input>

// my-input子组件组件
<template>
  <!-- 2. 监听 input 事件的出发 -->
  <div class="input" contenteditable @input="input"></div>
</template>

<script>
export default {
   
  // 1. 接受父级传递的值
  props: {
   
    value: {
   
      type: String,
      default: ''
    }
  },
  methods: {
   
    // 3. 编写 input 事件触发执行的事件处理函数
    input (event) {
   
      // 4. $emit input 事件,并将 event.target.innerText 作为参数
      this.$emit('input', event.target.innerText)
    }
  }
}
</script>

原生实现数据双向绑定

<body>
  <span id="text"></span>
  <input id="value" />
</body>
<script>
window.onload = function() {
     
  let input = document.getElementById('value')
  let text = document.getElementById('text')
  let data = {
      value: '' }
  input.value = data.value
  text.innerHTML = data.value
  // 数据劫持
  Object.defineProperty(data, 'value', {
     
    set: function (val) {
     
      input.value = val
      text.innerHTML = val
    },
    get: function () {
     
      return input.value
    }
  })
  input.addEventListener('keyup', function (){
     
    data.value = input.value
  })
}
</script>

相关推荐

  1. 数据双向v-modal

    2024-01-30 13:00:01       55 阅读
  2. vue中双向数据v-model的理解

    2024-01-30 13:00:01       36 阅读
  3. vue2源码解析---v-model双向数据

    2024-01-30 13:00:01       59 阅读
  4. Vue的双向v-model详细介绍

    2024-01-30 13:00:01       38 阅读
  5. Vue 表单数据双向 v-mode

    2024-01-30 13:00:01       43 阅读
  6. Vue 双向数据

    2024-01-30 13:00:01       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-30 13:00:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-30 13:00:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-30 13:00:01       82 阅读
  4. Python语言-面向对象

    2024-01-30 13:00:01       91 阅读

热门阅读

  1. el-tree setChecked实现父子不联动

    2024-01-30 13:00:01       53 阅读
  2. Qt基础-QDialog对话框使用

    2024-01-30 13:00:01       58 阅读
  3. IOS 计算富文本的高度方法

    2024-01-30 13:00:01       59 阅读
  4. 再学css

    再学css

    2024-01-30 13:00:01      51 阅读
  5. PySimpleGUI界面读取PDF转换Excel

    2024-01-30 13:00:01       55 阅读
  6. 蓝桥杯-岛屿个数-bfs-dfs算法

    2024-01-30 13:00:01       54 阅读
  7. 华为HCIP Datacom H12-831 卷16

    2024-01-30 13:00:01       65 阅读
  8. 蓝桥杯---错误票据

    2024-01-30 13:00:01       55 阅读
  9. 糊涂工具包使用 记录

    2024-01-30 13:00:01       65 阅读
  10. 51单片机点灯

    2024-01-30 13:00:01       53 阅读
  11. Redis:企业级的深入

    2024-01-30 13:00:01       42 阅读
  12. C语言数据结构——单链表

    2024-01-30 13:00:01       72 阅读