前端开发面试问问题1

182 阅读2分钟
  1. vue生命周期: Vue实列有一个完整的生命周期,从开始创建,初始化数据,编译模板,挂载dom, 渲染-更新-渲染,卸载等一系列过程。
生命周期:beforeCreate——vue实例化对象创建之前
         created——vue实例化对象创建之后
         beforeMounted——vue-dom元素挂载之前
         mounted——vue的dom元素挂载之后
         beforeUpdate——vue的data中的数据更新之前
         update——vue的data的值更新之后
         beforeDestroy——销毁之前
         destroy——销毁之后
  1. 当一个组件进入页面立即执行哪个周期函数 答:created,因为created执行力最快

  2. 如果请求数据的话,是在那个生命周期完成

  • created,因为created执行力最快;
  • 也有一种需要页面加载完成后再获取数据的话就是mounted
  • 因为mounted阶段是dom元素加载完毕
  1. 可以用created获取dom元素嘛? 答:不可以,因为dom元素是在mounted阶段加载完毕

  2. 为什么不用beforeMounted来获取? 答:因为beforeMounted是获取dom,没有数据,数据只能再mounted之后才能加载完毕,mounted不仅可以获取根节点和dom,还有数据

  3. methods和computed的相同和区别之处 相同:methods和computed每当触发重新渲染时, 调用方法再次执行函数,两种结果完全相同

区别:

methods:

  • 监听是已经再data中定义的变量,当变量改变时watch就会去触发

  • 当需要在数据变化执行异步或开销较大的操作,只能监听单数据类型

    computed:

  • 变量在自己里面定义,不在data;

  • 基于它的响应式依赖进行缓存,可以监听对象某个具体属性

  • 根据一个现在的数据去生成一个新的数据,并且两个数会永久的关系

  • 当没有数据改变时,不会重新计算,而是直接使用缓存

  • 初始化的时候就可以被监听和计算

  1. 什么时候用deep:true深度监听 例如data中有个obj对象,要想获取obj对象中的a就得使用深度监听
例如
data:{
   obj:{
    a:'1'
    }
  }
  1. ref的理解 作用:是获取dom元素的一种方式
  • 比如想要获取p标签,就先给ref取个名字,然后用$refs等于它的名字,就可以获取到了,就可以对dom元素进行操作
  1. v-for和v-if的优先级? 答:v-for比v-if的优先级高
  • 在代码中可以体现出v-for比v-if优先解析,每次页面渲染都会先执行循环在判断
  1. 分别在什么时候使用created和mounted
  • created:是一进入页面,数据初始化创建完成的时候引用,一些依赖的引入
  • mounted:是dom元素挂载渲染完成后的数据部分改变引用