vue的生命周期示例

var vm = new Vue({
     el: '#app',
      data: {
          msg:'ok'
      },
      methods: {
          show:function () {
              console.log("执行了show方法");
          },
          //调用钩子函数destroy
       destroy(){
			 //通过this来调用,this表示全局对象
			 this.$destroy();
		 }
      },
      beforeCreate(){
          /*
              这是一个生命周期函数,表示在实例完全创建出来之前会执行他
              在执行beforeCreate时,data和methods中的数据还没有初始化
          */
          console.log(this.msg);    //undefined
      },
      created(){
          /*
              第二个生命周期函数
              在created中,data和methods都已经初始化好
              如果要调用methods中的方法或者data中的数据,最早只能在created中操作
          */
          console.log(this.msg);   //ok
          this.show();   //执行了show方法
      },
      beforeMount(){
          /*
              这是第三个生命周期函数,
              此时模板已经在内存中编辑完成了,但尚未把模板渲染到页面中
              也就是在 beforeMount 执行的时候,页面中的元素还没有真正替换过来,只是之前写的模板字符串
          */
          console.log(document.getElementById("h3").innerText);   //{{ msg }}
      },
      mounted(){
          /*
              这是第四个生命周期函数,
              表示内存中的模板已经真实的挂载带页面中去了,用户可以看到渲染好的页面
              注意:mounted是实例创建期间的最后一个生命周期函数,当执行完mounted后,表示实例别完全创建好了
              如果要操作元素的DOM操作,最早在mounted中操作
          */
          console.log(document.getElementById("h3").innerText);   //ok
      },
      //接下来的是运行中的两个事件
      beforeUpdate(){
          /*
              表示 我们的界面还没有更新,但是数据已经更新了
              也就是执行beforeUpdate时,页面中显示的数据还是旧的,此时,data中的数据已经更新了
          */
          console.log("页面中的值:" + document.getElementById("h3").innerText);   //ok
          console.log("data中msg的值" + this.msg);   //No
      },
      updated(){
          /*
              执行时,页面中的数据与data中的数据已经同步了
          */
          console.log("页面中的值:" + document.getElementById("h3").innerText);   //No
          console.log("data中msg的值" + this.msg);   //No
      },
      beforeDestroy() {
          /*
              当执行该函数时,Vue实例已经从执行阶段进入了销毁阶段,
              但是实例上所有的data和methods、过滤器、指令都还可用,此时还没有真正的销毁
          */
          //注意:当时用了定时器时,需要我们在该函数下手动的销毁定时器,否则会造成内存泄漏
      },
      destroyed(){
          /*
              当执行了该函数时,组件已经完全被销毁,组件中所有的数据、方法、指令、过滤器都已经不可用了
          */
      }
  });

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3中,生命周期钩子函数发生了一些变化。下面是一个示例,展示了Vue 3中常用的生命周期钩子函数: ```vue <template> <div> <h2>Vue 3 生命周期示例</h2> <p>{{ message }}</p> </div> </template> <script> import { ref, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue'; export default { name: 'LifecycleExample', setup() { const message = ref('Hello, Vue 3!'); // 在组件挂载之前调用 onBeforeMount(() => { console.log('组件将要挂载'); }); // 在组件挂载之后调用 onMounted(() => { console.log('组件已经挂载'); }); // 在组件更新之前调用 onBeforeUpdate(() => { console.log('组件将要更新'); }); // 在组件更新之后调用 onUpdated(() => { console.log('组件已经更新'); }); // 在组件卸载之前调用 onBeforeUnmount(() => { console.log('组件将要卸载'); }); // 在组件卸载之后调用 onUnmounted(() => { console.log('组件已经卸载'); }); return { message }; } }; </script> <style scoped> h2 { color: #42b983; } </style> ``` 在这个示例中,我们使用了`setup`函数来设置组件的逻辑。通过`import`语句导入了Vue 3中的生命周期钩子函数,包括`onBeforeMount`、`onMounted`、`onBeforeUpdate`、`onUpdated`、`onBeforeUnmount`和`onUnmounted`。每个生命周期钩子函数都有一个对应的回调函数,可以在其中执行需要的操作。 在示例中,我们通过打印信息到控制台来展示每个生命周期钩子函数被调用的时机。同时,在模板中使用了一个响应式变量`message`,并将其显示在页面上。 这只是一个简单的示例,你可以根据需要在不同的生命周期钩子函数中添加自己的逻辑。请注意,Vue 3中的生命周期钩子函数已经改名为`onXXX`,与Vue 2中的生命周期钩子函数名有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旁观者lgp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值