IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> VUE生命周期 -> 正文阅读

[JavaScript知识库]VUE生命周期

废话不多说,先上图,图片来自这里
在这里插入图片描述


以下例子将展示beforeCreate(),created(),beforeMount(),mounted()钩子函数的含义(可自行将以下代码复制到html文件中运行一下):

<html>
    <head>
        <meta charset="utf-8">
        <title>vue</title>
        <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
          <p>name: {{name}}</p>
          <p>nameChanged: {{nameChanged}}</p>
        </div>
        <script>

          var vm = new Vue({
            el:"#app",
            data:{
              name:"nickjchn",
              nameChanged:false,
            },
            methods:{
              returnName(){
                return this.name;
              }
            },
            watch:{
              name(){
                this.nameChanged = true;
              }
            },
            computed:{
              newName(){
                return this.name+"new_name";
              }
            },
            beforeCreate(){
              console.log("beforeCreate-------------------");
              console.log("name:"+this.name);
              console.log("returnName:"+this.returnName);
              console.log("newName:"+this.newName);
              console.log("以上三个值都是undefined, 说明data, method, computed都还没有初始化");
            },
            created(){
              console.log("created-------------------");
              console.log("name:"+this.name);
              console.log("returnName:"+this.returnName);
              console.log("newName:"+this.newName);
              console.log("以上是哪个值都有了, 说明data, method, computed都初始化了,最早在这个钩子函数可以使用this调用data,methods或computed中的属性或方法,在此阶段可用ajax请求数据并保存到data中了");
            },
            beforeMount(){
              console.log("beforeMount------------------");
              console.log("正处于beforeMount阶段,可看到DOM中的{{}}还没有被替换掉,可在第一次渲染前在这里最后一次修改数据,点击[下一步]继续向下执行");
              debugger;
            },
            mounted(){
              console.log("mounted---------------------");
              console.log("正处于mount阶段,DOM中的{{}}已被渲染,此阶段之后可更新数据了,比如页面数据的过滤输入框或按钮应该在此阶段之后才可用,否则数据都没渲染完拿什么过滤");
              debugger;
            }
          })
        </script>
    </body>
</html>

debugger语句的作用看这里


以下实例展示了mounted阶段后某些按钮(/输入框)才可用

<div id="app">
  <input type="text" name="" value="" :disabled="input_disabled" placeholder="过滤框">
  <button type="button" name="button" :disabled="input_disabled">过滤按钮</button>
</div>
<script>
  var vm = new Vue({
    el:"#app",
    data:{
      is_mounted:false
    },
    computed:{
      input_disabled(){
        return !this.is_mounted;
      }
    },
    mounted(){
      debugger;
      this.is_mounted=true;
    }
  })
</script>

以下例子展示beforeUpdate()updated()钩子的含义:

<div id="app">
 <p>{{message}}</p>
  <button type="button" name="button" @click="newData()">新数据</button>
</div>
<script>
  var vm = new Vue({
    el:"#app",
    data:{
      message:"默认数据"
    },
    methods:{
      newData(){
        this.message="新数据";
      }
    },
    beforeUpdate(){
      console.log("beforeUpdate阶段message变量的值:"+this.message);
      debugger;
    },
    updated(){
      console.log("updated阶段message变量的值:"+this.message);
       debugger;
     }
  })
</script>

以上代码运行后点击[新数据]按钮后beforeUpdate()以及updated()钩子函数的效果分别如以下第一幅图和第二幅图所示:
beforeUpdate
updated


beforeDestroy:准备销毁,但是还没有销毁。实例属性和方法仍然可以使用。
destroyed:已经销毁,实例不可用。

可通过this.$destroy()方法销毁当前VUE实例和DOM之间的关联, 自行测试


相关资料:
vue 生命周期 created到beforeMount详解

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:49:36  更:2021-07-17 11:51:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 -2025/2/5 20:07:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码