1.Vue是什么?
Vue是一套构建用户界面的渐进式JavaScript框架 渐进式:从一个小巧的核心库到vue各式各样的插件库
2.Vue是谁开发的?
尤雨溪--后起之秀,生态完善,已成为国内前端工程师必备技能
3.Vue的特点
1. 采用组件化模式,提高代码复用率、切让代码更好维护
2. 声明式编码,让编码人员无需直接操作DOM,提高开发效率 3. 使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点
4.初识Vue
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>初识Vue</title>
<!-- 引入Vue -->
<script type="text/javascript" src="./js/vue.js"></script>
</head>
<body>
<!-- 准备好一个容器 -->
<div id="demo">
<h1>Hello,{{name.toUpperCase()}},我现在{{address}}</h1>
</div>
<script type="text/javascript" >
Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
//创建Vue实例
new Vue({
el:'#demo', //el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
data:{ //data中用于存储数据,数据供el所指定的容器去使用,值我们暂时先写成一个对象。
name:'世界',
address:'北京'
}
})
</script>
</body>
</html>
1. 想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象;
2. root容器里的代码依然符合html规范,只不过混入了一些特性的Vue语法;
3. root容器里的代码被称为【Vue模板】;
4. Vue实例和容器是一一对应的;
5. 真实开发中只有一个Vue实例,并且会配合着组件一起使用;
6. {{xxx}}中的xxx要写js表达式,且xxx可以自动读取data中的所有属性;
7. 一旦data中的数据发生变化,那么页面中用到的该数据的地方会自动更新;
5.模板语法
插值语法:
功能:用于解析标签体内容 写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性
指令语法:
功能:用于解析标签(包括:标签属性、标签体内容、绑定事件......) 举例:v-bind:href="xxx" 或 简写为::href="xxx" ,xxx同样要写js表达式,且可以直接读取到data中的所有属性 注意:Vue中有很多指令且形式都是v-???,此处只是用v-bind举个例子。
6.数据绑定
Vue中有2种数据绑定的方式:
1.单向绑定(v-bind):数据只能从data流向页面
2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data
注意:
1.双向绑定一般都应用在表单类元素上(如:input、select等)
2.v-model:value:可以简写为v-model,因为v-model默认收集的就是value的值
7.el和data的两种写法
1. el有2种写法
(1)new Vue时配置el属性
(2)先创建Vue实例,随后再通过vm.$mount("#root")来指定el值
2. data有2种写法:
(1)对象式
(2)函数式 如何选择:用到组件时,data必须使用函数式,否则会报错
3. 一个重要的原则:
由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再时Vue实例了。
8.MVVM模型
1. M:模型(Model):data中的数据
2. V:视图(View):模板代码
3. VM:视图模型(ViewModel):Vue实例
观察发现
1. data中所有的属性,最后都出现在vm身上了
2. vm身上所有的属性及Vue原型上所有属性,在Vue模板中都可以直接使用