美文网首页
【Vue3】组件实例和生命周期

【Vue3】组件实例和生命周期

作者: darkTi | 来源:发表于2022-02-13 17:11 被阅读0次
  • app是应用实例,vm是根组件实例


    image.png
<div id="app">
 <fieldset>
 <legend>组件实例</legend>
 {{ message }}
 <button @click="change">Click</button>
 </fieldset>
 </div>
 <script>
 const App = {
 data() {
 return {
 message: 'Hello Vue!!'
 }
 },
 methods: {
 change() {
 console.log(this)
 this.message += '!'
 }
 },
 }
 const app = Vue.createApp(App)
 console.log(app)
 const vm = app.mount('#app')
 console.log(vm)
 </script>
image.png

生命周期

  • mounted: 这时实例已被挂载,数据会出现在页面中,Vue.createApp({}).mount() 被新创建的 vm.$el 替换了;也就是说你可以通过vm.$el获取到根DOM元素;
  • beforeUpdate: 数据更新时调用,虽然这时内存中的数据被更新了,但是视图中的数据还没有更新;

问题

1、钩子函数
  • beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、
    beforeUnmount、unmounted
  • 与Vue2不同的是beforeDestroy、destroyed变成了beforeUnmount、unmounted
2、如果需要发送Ajax请求,最好放在哪个钩子函数?

发送请求当然越早越好,而最早只能放在created钩子里;因为在created时已经完成以下配置:数据检测、属性和方法的运算,watch和event回调;

3、⽗⼦组件嵌套时,⽗组件视图和⼦组件视图渲染完成谁先谁后?

(注意问的是渲染完成的先后,即在视图中出现的顺序,不是父子组件声明周期执行的顺序啊喂!!!)

  • 答:不确定。因为虽然根据父子生命周期执行顺序来看,父组件mounted之前子组件就以mounted完成,但是子组件是在父组件里面的,父组件不出现,子组件也不可能出现,所以它俩谁先谁后并不确定;
4、父子组件的生命周期执行顺序
  • 加载渲染过程
    父beforeCreate —> 父created —> 父beforeMount —> 子beforeCreate —> 子created —> 子beforeMount —> 子mounted —> 父mounted

  • 子组件更新过程
    父beforeUpdate —> 子beforeUpdate —> 子updated —> 父updated

  • 父组件更新过程
    父beforeUpdate —> 父updated

  • 销毁过程
    父beforeUnmount—> 子beforeUnmount—> 子unmounted—> 父unmounted

可以发现,子组件的生命周期都在父组件beforeXxx和xxxed之间去执行的

5、⽗⼦组件嵌套时,如果希望在所有组件视图都渲染完成后再执⾏操作,该如何做?
mounted() {
 this.$nextTick(function () {
 // 仅在渲染整个视图之后运⾏的代码
 })
}

相关文章

  • vue3 常用watch及defineExpose

    vue3 watch监听的两张方法 vue3 父组件调用子组件实例

  • 【Vue3】组件实例和生命周期

    app是应用实例,vm是根组件实例image.png 生命周期 mounted: 这时实例已被挂载,数据会出现在页...

  • angular 学习记录(七)

    一、生命周期钩子 当 Angular 实例化组件类并渲染组件视图及其子视图时,组件实例的生命周期就开始了。生命周期...

  • React组件生命周期

    react组件生命周期一个React组件的生命周期分为实例化,存在期,销毁 实例化 组件在客户端被实例化,第一次被...

  • 文档基础

    Vue3中文文档收获 基础 一.应用&组件实例 1.1.根组件 constRootComponent={/* 选项...

  • vue面试题总结

    1、vue生命周期 生命周期描述beforeCreate组件实例被创建之初,组件的属性生效之前created组件实...

  • AndroidViewmodel

    Lifecycles 生命周期 生命周期组件是 Android 官方架构组件中的核心组件, 它可以使各种实例作为观...

  • react组件的生命周期

    组件的生命周期 组件在react的生命周期中主要经历三个阶段:实例化、存在期和销毁时。React.js在组件生命周...

  • Notes On React - Two

    React 的生命周期   React组件 的生命周期大致可分成四个状态:  - Mounting:装配-组件实例...

  • react、vue的生命周期

    react.生命周期: (1)无状态组件没有生命周期(2)实例期:①Constructor(){} 在组件挂载之前...

网友评论

      本文标题:【Vue3】组件实例和生命周期

      本文链接:https://www.haomeiwen.com/subject/iwrocrtx.html