• vue生命周期钩子函数


    钩子函数:在特定的生命周期会被执行的函数。

    生命周期
                 四个生命阶段:
                 1.创建阶段    数据劫持/代理     钩子函数:beforeCreate  created
                 2.挂载阶段   模板编译成标准的html结构,并且挂载到页面上  beforeMount   mounted
                 3.更新阶段    状态的改变  引起   视图的改变  beforeUpdate  updated(可以多次触发  其他只触发一次)
                 4.卸载/销毁阶段  app的销毁 beforeUnmout  unmouted

    1. <div id="app">
    2. <div>
    3. <ul>
    4. <li v-for="(item,index) in arr">{{item}}li>
    5. ul>
    6. div>
    7. div>
    8. <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.37/vue.global.js">script>
    9. <script>
    10. var app=Vue.createApp({
    11. data:function(){
    12. return{
    13. arr:[]
    14. }
    15. },
    16. methods: {
    17. },
    18. beforeCreate(){
    19. //基本上不用 this指向不清晰 数据也没有劫持
    20. console.log("创建前");
    21. },
    22. created(){
    23. //当created执行时创建阶段已经完成 data中的数据已经被劫持了
    24. console.log("创建完成");
    25. this.arr=[1,2,3,4,5,6];
    26. },
    27. beforeMount(){
    28. console.log("挂载前");
    29. //挂载前 $el还是null 因此还没有把template渲染成DOM
    30. console.log(this.$el);//null
    31. },
    32. mounted(){
    33. console.log("挂载完成");
    34. //可以用于获取vue渲染出来的dom节点
    35. console.log(this.$el);
    36. },
    37. beforeUnmout(){
    38. console.log("销毁前");
    39. }
    40. });
    41. app.mount("#app");
    42. script>

    生命周期函数实例:

    1. <div id="app">
    2. <ul>
    3. <li v-for="(item,index) in productList">{{item.name}}li>
    4. ul>
    5. div>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.37/vue.global.js">script>
    7. <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.27.2/axios.min.js">script>
    8. <script>
    9. var app=Vue.createApp({
    10. data:function(){
    11. return{
    12. productList:[]
    13. }
    14. },
    15. methods: {
    16. },
    17. beforeCreate(){
    18. //基本上不用 this指向不清晰 数据也没有劫持
    19. console.log("创建前");
    20. },
    21. async created(){
    22. //当created执行时创建阶段已经完成 data中的数据已经被劫持了
    23. console.log("创建完成");
    24. //同时也可以使用async 和await 简化promise的使用
    25. //async 修饰符 配合await
    26. const res=await axios.get("http://www.xxx.top:8090/product/");
    27. this.productList=res.data.results;
    28. }
    29. });
    30. app.mount("#app");
    31. script>

    async函数定义

    async函数是使用关键字声明的函数。async 是“异步”的简写,所以应该很好理解 async 用于申明一个 function 是异步的。

    async函数一定会返回一个promise对象。如果一个async函数的返回值看起来不是promise,那么它将会被隐式地包装在一个promise中。

    async 本身是一个语法糖—>语法糖:带有一定功能的关键字

    • 语法糖的作用:能够减少代码量、增加程序的可读性,从而减少程序代码出错的机会

    await定义

    await 的意思是等待,所以应该很好理解,await 等待某个操作完成。

    作用

    await关键字的作用 就是获取 Promise中返回的内容, 获取的是Promise函数中resolve或者reject的值(await 作用是获取promise.[[promiseValue]]的值)

    关于await的注意点

    • await 必须写在 async 中

    • await 后是一个promise实例对象

    三者的区别
    promise和 async/await都是解决异步编程的一种方式,但是async/await使得异步代码看起来像同步代码。
    函数前面多了一个async关键字。await关键字只能用于async定于的函数内。async函数会隐式地返回一个Promise,该promise的resolve值就是return的值。
    为什么async/await更好?
    使用async函数可以让代码简洁很多,不需要像Promise一样需要then,不需要写匿名函数处理Promise的resolve的值,也不需要定义多余的data变量,还避免了嵌套代码。

    async/await 让 try/catch可以同时处理同步和异步的错误。在下面的示例中,try/catch不能处理JSON.parse的错误,因为它在Promise中,我们需要使用.catch,这样的错误会显得代码非常的冗余。
     


                

  • 相关阅读:
    Python中文分词及词频统计
    gogs git 服务器极速搭建
    【华为OD机试真题 JS】计算面积
    Docker 部署nginx记录
    Flink SQL --命令行的使用(02)
    Spring MVC介绍
    QT自制软键盘 最完美、最简单、跟自带虚拟键盘一样
    初学Vue(全家桶)-第19天(vue3):vue3响应式原理
    使用dockerfile制作定时执行任务镜像
    硬件扫盲系列-存储器
  • 原文地址:https://blog.csdn.net/Doulvme/article/details/126251812