IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> v-model双向数据绑定 -> 正文阅读

[JavaScript知识库]v-model双向数据绑定

双向数据绑定

主要用于给表单元素创建双向数据绑定。
即:
1.视图发生改变→数据发生对应的改变。即用户在视图(网页)上通过输入等操作,改变原数据。
2.数据改变→视图发生对应的改变。即在js中的数据本身发生改变(不由视图层面的操作导致的),视图要显示出最新的数据。
如:
在这里插入图片描述

Vue的绑定方式

Vue一般通过v-model指令进行双向数据绑定:
1.视图发生改变→对应的数据发生改变:用户在输入框里输入的内容会被message变量接下来,改变了app.message的值。
2.被改变的app.message同时也将动态更新在p标签的内容里。

<input type="text" id="app" v-model="message"> 
<p>{{message}}</p>
const app = new Vue({
	el:'#app',
	data:{
		message:'hello',
	}
})

Dom实现双向数据绑定(即v-model指令源码)

1.视图发生改变→对应数据发生改变:为标签注册事件监听属性,监听视图上的变化,然后重新为data.message赋值。

const app = {
	message:'hello world !'
}
var inp = document.querySelector('input');
var text = document.querySelector('p');
text.innerHTML = app.message;
inp.value = app.message;
inp.oninput = function() {
	app.message = inp.value;
	text.innerHTML = inp.value;
}

2.数据发生改变→视图发生改变(重难点)
需要用到方法:Object.defineProperty(对象名,‘属性名’,对象):

const app = {
	message:'hello world !'
};
const temp = app.message;  //  保存原数据到temp变量里
Object.defineProperty(app,'message',{
		get:function() {   //  在获取app.message属性值时调用
			return temp;
		},
		set:function(value) {   //  在设置app.message属性值时调用
			temp = value;   //  将被劫持下来的最新数据存在temp,以供get函数返回使用,这样就改变了原数据
			text.innerHTML = value;  //  将被劫持下来的最新数据显示在视图上
		}
	})

**注意1:**调用对象的defienProperty()方法时,get函数会在访问app.message时被调用,并劫持所获得的值存入temp。此时再访问app.message得到的值其实是get函数的返回值temp,虽然值与原先的2相等(因为事先存入了),但其实是不同的两个变量:app.message和temp。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:55:34  更:2022-03-31 23:59:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:01:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码