Vue的属性、方法、生命周期实例代码详解


Posted in Javascript onSeptember 17, 2019

实例

<!DOCTYPE html>
  <html lang="en">
   <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Vue的属性、方法和生命周期</title>
    <script src="Vue.min.js"></script>
   </head>
  
   <body>
    <div id="main">
     <span>{{ message }}</span>
     <br/>
     <span>{{ number }}</span>
     <br/>
     <button v-on:click="add">add</button>
    </div>
   </body>
  </html>
  
  <script>
   const App = new Vue({
    // 选择器
    el: '#main',
    // 数据
    data: {
     // 在data里面不仅可以定义字符串,我们还可以定义number
     message: 'Welcome to Chivalrous Island!',
     number: 85,
    },
    // 如果我们从服务器得到的数据并不是我们需要的,可能是上面数据的结合,这时我们可以用到一个Vue提供的一个属性:计算属性
    // 计算属性:可以把data里面的数据计算一下,然后返回一个新的数据,它被叫做computed。
    computed: {
     // 可以定义函数,然后返回需要的数据,比如下面我们要得到上面number的平方,计算结果为:
     getSqure: function () {
       return this.number * this.number;
     }
    },
    // 定义函数
    methods: {
     add: function() {
      this.number++;
     }
    },
    // 监听属性(监听器),它可以监听一个函数或者是一个变量
    watch: {
     // 函数接收两个参数值,afterVal代表改变之后的值,beforeVal表示改变之前的值
     number: function(afterVal,beforeVal) {
      console.log('beforeVal',beforeVal);
      console.log('afterVal',afterVal);
     }
    }
   });
  
   // 打印出来的结果
   console.log(App.getSqure);
  </script>

属性

从上面的案例可以知道,属性可以分为计算属性(computed)和监听属性(watch)。

计算属性有一个好处在于它有一个缓存机制,因此它不需要每次都重新计算。

监听属性(监听器),它可以监听一个函数或者是一个变量。

Vue的属性、方法、生命周期实例代码详解 

方法(methods)

methods常调用的函数。

上面的示例中,getSqure,add,number,像这些都是我们自定义的方法。

生命周期(钩子函数)

生命周期就是从它开始创建到销毁经历的过程。

这个生命周期也就是Vue的实例,从开始创建,到创建完成,到挂载,再到更新,然后再销毁的一系列过程,这个官方有一个说法也叫作钩子函数。

<script>
  window.onload = () => {
    const App = new Vue({
      ......
    
      // 生命周期第一步:创建前(vue实例还未创建)
       beforeCreate() {
         // %c 相当于给输出结果定义一个样式
        console.log('%cbeforeCreate','color:green', this.$el);
        console.log('%cbeforeCreate','color:green', this.message);
       },
      // 创建完成
      created() {
         console.log('%ccreated','color:red', this.$el);
         console.log('%ccreated','color:red', this.message);
      },  
      // 挂载之前
      beforeMount() {
        console.log('%cbeforeMount','color:blue', this.$el);
        console.log('%cbeforeMount','color:blue', this.message);
      },
      // 已经挂载但是methods里面的方法还没有执行,从创建到挂载全部完成
      mounted() {
        console.log('%cmounted','color:orange', this.$el);
        console.log('%cmounted','color:orange', this.message);
      },
       // 创建完之后,数据更新前
      beforeUpdate() {
        console.log('%cbeforeUpdate','color:#f44586', this.$el);
        console.log('%cbeforeUpdate','color:#f44586', this.number);
      },
      // 数据全部更新完成
      updated() {
        console.log('%cupdated','color:olive', this.$el);
        console.log('%cupdated','color:olive', this.number);
      },
      // 销毁
      beforeDestroy() {
        console.log('%cbeforeDestroy','color:gray', this.$el);
        console.log('%cbeforeDestroy','color:gray', this.number);
      },
      destroyed() {
        console.log('%cdestroyed','color:yellow', this.$el);
        console.log('%cdestroyed','color:yellow', this.number);
      }
    });
  // 打印出来的结果
    console.log(App.getSqure);
    window.App = App;
  };
  
  // 销毁vue实例
  function destroy() {
    App.$destroy();
  }
  </script>

html:

<body>
    <div id="main">
     <span>{{ message }}</span>
     <br/>
     <span>{{ number }}</span>
     <br/>
     <button v-on:click="add">add</button>
      <br />
     <button Onclick="destroy()">destroy</button>
    </div>
  </body>

Vue的属性、方法、生命周期实例代码详解

Vue的属性、方法、生命周期实例代码详解

总结

以上所述是小编给大家介绍的Vue的属性、方法、生命周期实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
经典的带阴影的可拖动的浮动层
Jun 26 Javascript
JavaScript 脚本将当地时间转换成其它时区
Mar 19 Javascript
html中table数据排序的js代码
Aug 09 Javascript
javascript不可用的问题探究
Oct 01 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
Aug 25 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
Vue实现可移动水平时间轴
Jun 29 Javascript
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
小程序的上传文件接口的注意要点解析
Sep 17 #Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 #Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
Sep 17 #Javascript
ionic2.0双击返回键退出应用
Sep 17 #Javascript
三步实现ionic3点击退出app程序
Sep 17 #Javascript
ionic3双击返回退出应用的方法
Sep 17 #Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 #Javascript
You might like
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
tagName的使用,留一笔
2006/06/26 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
详解vue v-model
2020/08/31 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
Python中with及contextlib的用法详解
2017/06/08 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
自定义django admin model表单提交的例子
2019/08/23 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
Django如何使用redis作为缓存
2020/05/21 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
Django URL参数Template反向解析
2020/11/24 Python
输入N,打印N*N矩阵
2012/02/20 面试题
厨师岗位职责
2013/11/12 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
消防工作实施方案
2014/06/09 职场文书
新学期开学标语
2014/06/30 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
总经理岗位职责范本
2015/04/01 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
Pandas搭配lambda组合使用详解
2022/01/22 Python
vue elementUI表格控制对应列
2022/04/13 Vue.js
Win11软件图标固定到任务栏
2022/04/19 数码科技