1. 什么是vue.js
Vue.js是一套构建用户界面的渐进式框架, 是前端的主流框架之一,和Angular.js、React.js 一起,并成为前端三大主流框架。
2.框架和库的区别
框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。
库(插件):提供某一个小功能,对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。
3.MVC与MVVM的区别
MVC 是后端的分层开发概念,MVC分别是:model(模型层)、controller(调度层)、view(视图层)
MVVM是前端视图层的概念,主要关注于视图层分离,也就是说:MVVM把前端的视图层,分为了三部分Model(业务逻辑,数据)、View(界面展示)、VM ViewModel(链接view和model);
4.Vue.js代码结构
1.引入vue.js 。如:<script src="./vue-2.4.0.js"></script>,本地和网上的都可以。
2.写视图层(我们要展示的内容)
3.实例化一个Vue()
如图:
5.插值表达式、v-cloak、v-text、v-html
插值表达式{{}},可以在前后插入内容
v-cloak:防止页面闪烁,使用的时候需要在style标签里加一个display:none
v-text:会替换掉元素里的内容
v-html:可以渲染html页面
6.页面元素属性值的绑定 v-bind和事件绑定v-on
v-bind用于绑定页面元素的属性值,简写 :
v-on进行事件的绑定,用的最多是click事件绑定,简写 @
如:
7.事件修饰符
- .stop 阻止冒泡
- .prevent 阻止默认事件
- .capture 添加事件侦听器时使用事件捕获模式
- .self 只当事件在该元素本身(比如不是子元素)触发时触发回调
- .once 事件只触发一次
8.v-model数据双向绑定(用于绑定表单控件)
例:
双向数据绑定底层实现原理:主要采用数据劫持结合“发布-订阅”模式的方式,通过Object.defineProperty()的setter和getter,在数据变动时发布消息给订阅者
9.v-for和key属性
-
遍历数组,参数(item,index) in list
-
遍历对象,参数(value,key,index) in list
-
遍历数字,num in 10 (1~10)
-
在使用v-for的时候都需要设置key
-
让界面元素和数组里的每个记录进行绑定
-
key只能是字符串或者数字
-
key必须是唯一的
10.v-if与v-show的区别
-
v-if是删除dom元素,v-show是设置display:none
-
只修改一次的时候,状态不频繁切换的时候可以使用v-if,状态频繁切换的时候可以使用v-show