1. 什么是vue
Vue.js是一套构建用户界面的渐进式框架。其核心理念是,组件化开发,数据驱动视图。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。
2.什么是mvc和mvvm
(1)MVC 是后端的分层开发概念;
其中M是model层:负责操纵数据库 。V是view层:视图层,发送请求,接收响应。C是controller,是业务逻辑处理层,接收请求和返回响应。
(2)MVVM是前端视图层的概念,主要关注于视图层分离,也就是说:MVVM把前端的视图层,分为了三部分Model、View、VM ViewModel;
其中中M为model层:数据层保存数据,V是view层是页面的HTML结构。VM是一个调度者,链接M与V
3.框架和库的区别
(1)框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。
(2)库(插件):提供某一个小功能,对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。
4.插值表达式
{ {msg}}
5.vue指令界面防止闪烁
v-cloak
6.vue指令v-html和v-text的区别
1.v-html:可以解析富文本,可以渲染html界面
2.v-text:会替换掉元素里的内容
7.vue指令-属性绑定及简写
v-bind 简写:
8.vue指令-事件绑定及简写
v-on 简写@
9.vue事件修饰符
1.阻止冒泡
@事件类型.stop=“方法”
2.阻止默认事件
@事件类型.prevent=“方法”
3.添加事件侦听器时使用事件捕获模式
@事件类型.capture=“方法”
4.事件只触发一次
@事件类型.once=“方法”
5.只当事件在该元素本身触发时触发回调
@事件类型.self=“方法”
10.vue指令-双向数据绑定
v-model
原理:采用数据劫持结合‘发布者——订阅者’模式,通过Object.defineProperty()对每个属性的get和set进行拦截。在数据发生变化的时候发布消息给订阅者,触发相应的监听回调
11.vue指令-循环渲染
v-for
12.vue指令-显示隐藏
v-show
13.vue指令-v-for如何遍历对象、数组、数字
1.遍历数组,参数(item,index) in list
<div v-for=‘(item,index) in list’ :key='index'></div>
list是在data中定义的数组,循环的次数为数组中元素的个数
2.遍历对象,参数(value,key,index) in obj
<div v-for=‘(value,key,index) in obj’ :key='index'></div>
obj是在data中定义的对象,循环的次数为对象中属性的个数
3.遍历数字,num in 10
<div v-for=‘num in 10’ :key='num'></div>
14.vue指令-v-for为什么设置key
让界面元素和数组里的每个记录进行绑定,主要是为了高效的更新虚拟DOM,提高重排效率
key——只能是唯一的字符串或数字
15.vue指令-v-if和v-show的区别
1.区别:
(1)v-if删除dom元素(true为显示/false为删除)
(2)v-show设置display:none(true为显示/false为隐藏)
2.应用场景:
(1)v-if只修改一次或者切换次数较少的时候可以使用v-if
(2)v-show频繁切换的时候可以使用v-show
16.vue绑定class方式
(1)数组
:class=“变量”
在data中加入后面的变量,赋值一个类名的数组
(2)三木表达式
:class =“flag? '类名1' :'类名2' ”
在data中给flag赋值true或者false
(3)数组内置对象(对象的键是样式的名字,值是Boolean类型)
:class=“变量”
在data中加入后面的变量,赋值一个类名的数组,数组中包含对象
例如——
数组变量= [{‘类名1’:true/false},{‘类名2’:true/false}]
(4)直接通过对象
:class=“{‘类名a’:true/false,‘类名b’:true/false}”
17.vue绑定style方式
(1)直接在元素上通过style 的形式,书写样式对象
<div style="color:red;"></div>
(2)将样式对象,定义到 data 中,并直接引用到 :style 中
a)先在data上定义样式
data {
style1:{color:'red'}
}
b)再在元素中,通过属性绑定的形式,将样