Time: 20190911
非双向绑定案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body>
<div id="app">
<input type="text" :value="inputText">
<p>inputText: {{ inputText }}</p>
</div>
<script>
var app = new Vue(
{
el: '#app',
data: {
inputText: '初始值'
},
created() {
// 应用启动时执行
console.log("应用启动...")
}
}
)
</script>
</body>
</html>
这种写法,input
框中的数据修改不会在<p>
标签中显示。
因为使用v-bind
只会在inputText
变量值变化时,才会修改输入框的值,即Model --> View
是绑定的。但View --> Model
的值并没有发生变化。
因此,现在要用v-model
指令了!
对了,上面我用了冒号的简写法,其实是v-bind:value="inputText"
。
改成下面的写法即可:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body>
<div id="app">
<input type="text" v-model:value="inputText">
<p>inputText: {{ inputText }}</p>
</div>
<script>
var app = new Vue(
{
el: '#app',
data: {
inputText: '初始值'
},
created() {
// 应用启动时执行
console.log("应用启动...")
}
}
)
</script>
</body>
</html>
或者下面这样才是正宗写法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body>
<div id="app">
<input type="text" v-model="inputText">
<p>inputText: {{ inputText }}</p>
</div>
<script>
var app = new Vue(
{
el: '#app',
data: {
inputText: '初始值'
},
created() {
// 应用启动时执行
console.log("应用启动...")
}
}
)
</script>
</body>
</html>
因为使用v-model
,即使设置了属性,比如value
,checked
或者selected
等,都会被忽略。
所以上面两种写法是一样的,没啥区别。
2019.10 Update:
END.