当前位置: 首页 > news >正文

数据双向绑定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.valuetext.innerHTML = data.value// 数据劫持Object.defineProperty(data, 'value', {set: function (val) {input.value = valtext.innerHTML = val},get: function () {return input.value}})input.addEventListener('keyup', function (){data.value = input.value})
}
</script>
http://www.lryc.cn/news/292584.html

相关文章:

  • Docker 容器jar 运行报错 at sun.awt.FontConfiguration.getVersion 解决方法
  • 光学3D表面轮廓仪服务超精密抛光技术发展
  • 详解C++中auto关键字
  • 24.云原生ArgoCD高级之数据加密seale sealed
  • 线性代数:线性方程组
  • 标准的排序组合-算法
  • 2402C++,C++递归取各种节点名字
  • Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)
  • Logstash 7.7.1版本安装系统梳理
  • 4. sass实用函数归纳
  • 《元梦之星》赛季更新带来“新”内容,为何却被玩家集体声讨?
  • 故障诊断 | 一文解决,CNN-SVM卷积神经网络-支持向量机组合模型的故障诊断(Matlab)
  • 菜鸡后端的前端学习记录-2
  • Layui + Echarts 5.0
  • linux使用iptables禁用ip
  • 安全防御第五次作业
  • 分库分表原则
  • VUE PC端可拖动悬浮按钮
  • opencv0014 索贝尔(sobel)算子
  • Redis简介和数据类型
  • Day06-Linux下目录命令讲解及重要文件讲解
  • 睿尔曼超轻量仿人机械臂—外置按钮盒使用说明
  • PYTHON蓝桥杯——每日一练(简单题)
  • 【数据结构 01】栈
  • ⑩电子产品拆解分析-家用无线遥控开关433Mhz
  • java之手动创建spring-boot-3项目
  • Linux--redhat9创建软件仓库
  • [力扣 Hot100]Day20 旋转图像
  • golang网络编程day5
  • Swagger学习使用