vue面试常见

226 阅读3分钟

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.组件之间传值

  1. 父传子 通过属性绑定 子组件 通过props方法接受数据
  2. 子传父 通过事件绑定 父组件监听自定义是事件,子组件通过$emit()提交事件,并携带参数
  3. 兄弟之间 通过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.数据驱动视图。