在vue中,我们很容易实现双向绑定(输入什么出什么)
<div id="app">
<input type="text" v-model="msg">
<h3>{{msg}}</h3>
//这样可以以达到输入什么,显示什么
</div>
如果在原生中就实现就比较困难了
<!DOCTYPE html>
<html lang="zh_cn">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="ipt" value="" oninput="iptChange(this.value)" />
<h3 id="title"></h3>
</body>
</html>
<script>
// 获取元素
var ipt = document.getElementById('ipt');
var title = document.getElementById('title');
// 声明一个data对象,专门用来放数据
var data = {};
// 用来给对象动态添加属性 define-定义 Property-属性
// Object.defineProperty(对象的名称, 属性的名称, 配置项)
// get代表定义这个msg时要给他赋值的数据
// set代表当你拿到最新的值时,你想要去做什么事
Object.defineProperty(data, 'msg', {
get: function(){
return "你好世界"
},
set: function(newVal){
// console.log(newVal) // msg已经被修改了
title.innerHTML = newVal;
ipt.value = newVal;
}
})
// console.log(data.msg)
title.innerHTML = data.msg;
ipt.value = data.msg;
// input值发生了改变
function iptChange(val){
// 修改数据源(data.msg),会自动触发set方法
data.msg = val;
}
</script>
Comments | NOTHING