【Vue笔记】Vue入门简介_数据绑定和MVVM模型(02)
Page content
看vue数据绑定的几种方式。
1.单项双向绑定
v-bind: 单项绑定,数据只能是从data流向页面
v-model: 双项绑定,数据可以从页面流向data,也可以从data流向页面
v-model 指令只能用在表单类元素(输入类)
v-model:value 可以简写为 v-model
2.el和data的两种写法
el
- 可以 new的时候配置
- 先创建实例,然后再用$mount指定
data
- 对象式:可以是对象
- 函数式:函数必须返回object类型。也不能是箭头函数,因为Vue管理的函数如果是箭头函数的话,this指向不是Vue实例。
3.实例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/vue.js" type="text/javascript" charset="uft-8"></script>
</head>
<body>
<div id="app">
单项数据绑定: <input type="text" v-bind:value="name"><br />
双项数据绑定: <input type="text" v-model:value="name"><br />
<!--
v-bind: 单项绑定,数据只能是从data流向页面
v-model: 双项绑定,数据可以从页面流向data,也可以从data流向页面
v-model 指令只能用在表单类元素(输入类)
v-model:value 可以简写为 v-model
-->
---------简写--------<br />
<!-- 简写 -->
单项数据绑定: <input type="text" :value="name"><br />
双项数据绑定: <input type="text" v-model="name"><br />
</div>
<div id="app1">
<h1>你好,{{name}}</h1>
</div>
<script type="text/javascript">
Vue.config.productionTip = false;
new Vue({
el: '#app', //vue和容器关联
data: { //存储数据,提供给el的容器。 这是对象和函数。
name: '小明',
website: {
name: '百度',
url: 'http://www.baidu.com'
}
}
});
/*
vue的
el 属性
1.可以 new的时候配置
2.先创建实例,然后再用$mount指定
data 属性
1.对象式:可以是对象
2.函数式:函数必须返回object类型。
也不能是箭头函数,因为Vue管理的函数如果是箭头函数的话,this指向不是Vue实例了
*/
const v = new Vue({
// el: '#app1',
// 函数必须要返回对象。
data: function () { //此处的this是vue实例对象,所以不能用箭头函数
return {
name: '小红',
website: {
name: '谷歌',
url: 'https://google.com'
}
}
}
});
console.log(v);
//可以指定容器
// v.$mount('#app1');
setTimeout(() => {
v.$mount('#app1');
}, 2000)
</script>
</body>
</html>
4.MVVM 模型
看看Vue官网的这段话。
然没有完全遵循 MVVM 模型,但是 Vue 的设计也受到了它的启发。 因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变量名表示 Vue 实例。
M: 模型Model ==> 对应的是data中的数据
V: 视图View ==> 模板
VM: 视图模型ViewModel ==> Vue实例对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/vue.js" type="text/javascript" charset="uft-8"></script>
</head>
<body>
<!-- 整个div容器就是VIEW -->
<div id="app">
<h3> hello {{name}} </h3>
<h3> {{_c}} </h3> <!-- 只要vm身上在的属性都可以使用 -->
</div>
<script type="text/javascript">
Vue.config.productionTip = false;
const vm = new Vue({ //=> 实例化Vue是 View-Model
el: '#app',
data: { //=> data数据是 Model
name: 'Vue!'
}
});
</script>
</body>
</html>
欢迎大家的意见和交流
email: li_mingxie@163.com