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

v-model原理

v-model原理

    • v-model原理
    • 表单类组件封装
    • v-model简化代码

v-model原理

1.原理:

v-model本质上是一个语法糖。例如应用在输入框上,就是value属性 和 input 事件的合写

<template><div id="app" ><input v-model="msg" type="text"><input :value="msg" @input="msg = $event.target.value" type="text"></div>
</template>

2.作用:

提供数据的双向绑定

  • 数据变,视图跟着变 :value
  • 视图变,数据跟着变 @input

3.注意

$event 用于在模板中,获取事件的形参

4.代码示例

<template><div class="app"><input type="text"  /><br /> <input type="text" /></div>
</template><script>
export default {data() {return {msg1: '',msg2: '',}},
}
</script> 
<style>
</style>

5.v-model使用在其他表单元素上的原理

不同的表单元素, v-model在底层的处理机制是不一样的。比如给checkbox使用v-model

底层处理的是 checked 属性和 change 事件。

不过咱们只需要掌握应用在文本框上的原理即可

表单类组件封装

1.需求目标

实现子组件和父组件数据的双向绑定 (实现App.vue中的selectId和子组件选中的数据进行双向绑定)

2.代码演示

App.vue

<template><div class="app"><BaseSelect></BaseSelect></div>
</template><script>
import BaseSelect from './components/BaseSelect.vue'
export default {data() {return {selectId: '102',}},components: {BaseSelect,},
}
</script><style>
</style>

BaseSelect.vue

<template><div><select><option value="101">北京</option><option value="102">上海</option><option value="103">武汉</option><option value="104">广州</option><option value="105">深圳</option></select></div>
</template><script>
export default {
}
</script><style>
</style>

v-model简化代码

1.目标:

父组件通过v-model 简化代码,实现子组件和父组件数据 双向绑定

2.如何简化:

v-model其实就是 :value和@input事件的简写

  • 子组件:props通过value接收数据,事件触发 input
  • 父组件:v-model直接绑定数据

3.代码示例

子组件

<select :value="value" @change="handleChange">...</select>
props: {value: String
},
methods: {handleChange (e) {this.$emit('input', e.target.value)}
}

父组件

<BaseSelect v-model="selectId"></BaseSelect>
http://www.lryc.cn/news/299704.html

相关文章:

  • 波奇学Linux:文件系统
  • 项目访问量激增该如何应对
  • 【Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)】
  • 幻兽帕鲁官方更新了,服务器端怎么更新?
  • axios-retry 响应异常
  • Vue项目创建和nodejs使用
  • 【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】
  • 【开源】JAVA+Vue.js实现天然气工程运维系统
  • 什么是智慧隧道,如何建设智慧隧道
  • jupyter notebook
  • MongoDB聚合:$listSearchIndexes
  • Excel练习:日历
  • 【C语言】指针练习篇(上),深入理解指针---指针和数组练习题和sizeof,strlen的对比【图文讲解,详细解答】
  • 2048游戏C++板来啦!
  • 2000-2021年县域指标统计数据库
  • Hive on Spark配置
  • 计算机网络——11EMail
  • 第13讲创建图文投票
  • Vulnhub靶机:DC3
  • 代码随想录算法训练营第三十一天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
  • 【光学】学习记录1-几何光学的近轴理论
  • 【51单片机】AT24C02(江科大、爱上半导体)
  • nohup基本使用
  • postgresql 手动清理wal日志的101个坑
  • 【开源训练数据集3】Top3人脸数据集及其使用方法-计算机视觉应用
  • 精灵图,字体图标,CSS3三角
  • .NET Core性能优化技巧
  • 人类智能远远超越了物理与数理范畴
  • 数据库管理-第149期 Oracle Vector DB AI-01(20240210)
  • FlinkSql通用调优策略