介绍
Vue.js 是什么
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
初始化
我们在外部导入vue,element ui 等文件时,console会出现这样的提示,对于开发版本,会默认向控制台打印:
他提示我们要在开发模式下进行,而我们已经是开发模式了,尽管这并不会影响使用,但是稍微有点强迫症的我还是想把他给解决掉,方法如下
如果你不会写上图复杂的代码,就搜索一个扩展名并安装就可以了(如下图所示)
一.初始Vue
第一步:给vue准备一个容器(app)
在页面中,通过插值表达式可以直接使用Vue管理的数据。注意:Vue管理的数据是响应式的,所谓响应式,指的是,当前数据发生改变时,会重新渲染页面。
第二步:创建一个vue对象
# el选项,指定当前Vue实例,操作的容器
# v-on:指令用于绑定事件
# data选项,用于存储当前Vue实例管理的数据 // data选项里面管理的数据,会被添加到Vue实例身上,这里就是vm身上。 // data选项里面管理的数据,其实会被Vue实例身上的_data进行代理;并将代理过后的数据再添加到Vue实例身上,方便直接调用。
二.Vue的响应式原理
因为对象是引用类型,在传递时,传的是地址
Vue的响应式原理,就用到了Object.defineProperty,给代理对象添加属性。
01.我们先定义一份原始数据,也就是被代理对象
let data={name:'张三',age:18}
02.再定义一个空的代理对象
03.使用Object.defineProperty给代理对象添加属性
如何给对象添加成员
let obj = { }
// 方式1:对象名.属性的方式,给对象添加成员obj.name='吴亦凡'// 方式2:对象名['属性名']的方式,给对象添加成员obj['age']=30// 方式3:通过Object对象的defineProperty方法,给指定的对象添加指定的属性// 这种方式,给对象添加成员,尽管繁琐,但是可以配置更多的功能。// 默认添加的属性是不允许删除的,如果要允许删除,就需要添加configurable配置。// 默认添加的属性是不允许枚举的,所谓枚举指的就是遍历。
三.Vue的常用指令
v-bind:用于绑定属性,通过v-bind:绑定过的属性,可以在属性值可以写表达式
v-on:用于绑定事件,通过v-on:绑定过的事件,可以指定Vue实例定义的方法
v-bind:可以用:简写。
v-on:可以用@简写。
通过v-model指令,可以实现对数据的双向绑定,
v-model指令是 v-bind:value 和 v-on:input 的简写。
四. 条件渲染和列表渲染
<!-- v-if指令用于条件渲染,表达式返回true,显示元素;否则不显示元素。 -->
<!-- v-show指令也是用于条件渲染,表达式返回true,显示元素;否则不显示元素。 -->
v-if 和 v-show 如何选择 如果页面需要反复切换显示和隐藏,用v-show。 如果页面中有很多模块需要隐藏,用户可能只对其中的某个模块感兴趣,用v-if, 所有的模块首屏加载时,全部都不渲染,当用户选择指定的模块后,再渲染指定的模块。
注意:v-if 的表达式返回false,会生成对应的元素。
v-show的表达式返回true,元素正常生成,通过display样式去控制显示和隐藏。
所以,如果元素需要反复切换显示和隐藏使用v-show;如果只是页面加载是判断是否显示使用v-if
<!-- v-if,v-else-if,v-else可以组成多重判断结构。注意:中间不能有断层。 -->
v-for指令,用于循环列表。
语法:v-for="(每一项,索引) in 数组",渲染列表时,为了提高渲染性能,
通常都要绑定一个key。key一定要是唯一值。