首页 > 编程知识 正文

前端面试题vue,谈谈对vue的理解面试题

时间:2023-05-05 20:06:13 阅读:33757 作者:4385

VUE生命周期Vue -针对每个生命周期详细解决高频率问题

Vue -生命周期详细信息

vue实例具有完整的生命周期。 这就是从节点创建、初始化数据、编译模板、装载DOM、渲染-更新-渲染-卸载销毁的一系列过程。 称为vue实例的生命周期,生命周期挂接是在某个阶段提供处理的机会。

每个周期的详细生命周期分为8个阶段:创建前/后、加载前/后、更新前/后和销毁前/后。

创建前/后

在描述生命周期之前,首先介绍vue实例这个概念。 vue实例可以理解为创建包含挂接函数、data、methods、components (即vue页面框架中常见的导出默认部分的数据data )和每个生命周期的对象

相反,我们知道函数的执行是在beforeCreate循环中进行的,如果此时没有初始化实例,我们就无法访问该方法,因此函数的执行更加不成立。

beforeCreate (创建前) :

实例初始化后,在数据观测和事件配置之前调用,组件的可选对象尚未创建。 vue实例的装载元素el和数据对象data为undefined,尚未初始化。 因此,此时无法访问methods、data和computed等方法和数据。

创建(创建后)

实例创建后调用,它有vue实例的数据data,但还没有el。

在此步骤中,实例完成了以下配置: 完成了数据观测、属性和方法运算、watch/event事件回调和data数据初始化。 el没有。 但是,装载阶段尚未开始,$el属性当前未显示。

这是一般的生命周期。 可以调用methods方法、更改data中的数据、在vue的响应绑定中将更改反映在页面上,以及检索computed的计算属性。 一些人通常喜欢在这里预处理实例,或者在这里发送ajax请求。 值得注意的是,在这个周期中没有太多方法阻止实例化过程,因此如果有数据必须获取才能允许访问页面,则不适合用这种方法请求,并且组件路由挂接beforerourus

载入前/后

beforeMount :在装载开始之前调用,vue实例的$el和data已初始化,但在装载之前是虚拟的demo阶段,尚未替换data.message。 实例已完成以下配置:

编译模板,在html中生成data中的数据和模板,el和data初始化完成。 请注意,此时html还没有悬挂在页面上。

挂载mounted:vue实例后,data.message已成功渲染。 这意味着模板中的HTML已渲染到HTML页面。 此时可以执行一些ajax操作,但mounted只能执行一次。

更新前/后

当data发生变化时,用户将触发beforeUpdate和update方法。

销毁前/后

执行destroy方法后,更改data不再触发周期函数。 这表明vue实例已停止接收事件并将事件绑定到dom,但dom结构仍然存在。

高频问题的第一页加载会触发哪个挂钩?

加载第一页时,会触发几个挂接: beforeCreate、created、beforeMount和mounted。

DOM渲染在那个循环中完成了吗?

DOM渲染已在mounted中完成。

对于第一张图中的代码,对于在script标签中部署vue,通常在编写项目时不这样做,而在直接创建项目时将vue create项目名称这样创建为vue项目。

对于vue框架中与生命周期相关的APP应用,每个人的习惯都不同。 我自己习惯在methods中编写相关方法,在created中运行this .方法。 data有我们项目的数据模型。

欢迎分享交流!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。