1.什么是Vue的声明周期
- Vue实例从创建到销毁的过程就是生命周期。从开始创建,初始化数据、编译模板、挂载DOM->渲染、更新数据->渲染、销毁等一系列过程称为Vue的生命周期。
| 函数名称 |
过程时间 |
主要作用 |
| beforeCreate |
创建前 |
在数据观测和初始化时间还没有开始 |
| created |
创建后 |
获取data里面的数据,此时没有DOM |
| beforeMount |
载入前 |
相关的render首次被调用,把data里面的数据和模板生成的HTML,但还没有挂载到页面上 |
| mountde |
载入后 |
用上面编译好的HTMl内容替换掉el所指的DOM对象,此过程中进入ajax操作 |
| beforeUpdate |
更新前 |
数据更新之前调用,发生虚拟DOM渲染之前 |
| updated |
更新后 |
组件DOM已经更新,可以执行依赖与DOM的操作 |
| beforeDestroy |
销毁前 |
在实例销毁前调用 |
| destryde |
销毁后 |
所有的监听事件都会被移出 |
2.vue常见指令
- v-for
- v-if
- v-else
- v-bind 简写 :
- v-on 简写 @
- v-show
- v-model
3.v-if和v-show的区别
- v-if 是否渲染这个标签,是直接生成或者不生成
- v-show 是通过改变display的属性来控制是否显示
4.组件之间传值
- 父传子 通过属性绑定 子组件 通过props方法接受数据
- 子传父 通过事件绑定 父组件监听自定义是事件,子组件通过$emit()提交事件,并携带参数
- 兄弟之间 通过EventBus 创建一个Vue实例,用他来传递和接受数据
5.vue如何封装组建
- 建立组件的模板
- props接受外部的数据
- 数据处理和数据输出
6.vue中的过滤器都实现过什么功能
7.vue为什么在new实例化的时候data是一个对象,在组件中就必须是一个函数
- 每一个vue组件都是一个vue实例,通过new Vue实例化,引用同一个对象,若果data是一个对象的话,name一旦修改了其中一个组件中的数据,其余组件中的数据也会被修改,
- 而data是如果是一个函数的话,每个vue组件中的data就有了自己的私有作用域,和其他组件互不干扰。
8.vue-router 如何配置路由
1.实例化路由new VueRoute({})
2.配置路由映射关系表routers[{}]
3.设置路由导航<router-link to=''></router-link>
4.设置容器<rotuer-view>
5.将路由挂载到new Vue里面
9.配置路由没有问题,但是组件没有渲染出来的原因
1.容器<router-view>没有写
2.没有挂载到vue里面
3.template中没有一个根标签
10.如何添加子路由
1.在父路由的配置映射对象中,添加children:[{}]
11.vue的核心
1.双向数据绑定
2.通过指令扩展HTML,通过表达式绑定到HTML
3.解耦视图和数据
4.可复用组件,封装了HTML/JS?CSS
5.操作更轻量的虚拟DOM
6.数据驱动视图。