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 相关文章推荐
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
Sep 08 Javascript
javascript 获取表单file全路径
Dec 31 Javascript
解决jQuery插件tipswindown与hintbox冲突
Nov 05 Javascript
select标签模拟/美化方法采用JS外挂式插件
Apr 01 Javascript
Javascript实现返回上一页面并刷新的小例子
Dec 11 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
Oct 02 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
Dec 27 Javascript
小程序的上传文件接口的注意要点解析
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/03/21 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
php数组遍历类与用法示例
2019/05/24 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
python如何调用php文件中的函数详解
2020/12/29 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
总会计师岗位职责
2014/02/19 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
民用住房租房协议书
2014/10/29 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2015年防汛工作总结
2015/05/15 职场文书
污染环境建议书
2015/09/14 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
《灰雀》教学反思
2016/02/19 职场文书
《迟到》教学反思
2016/02/24 职场文书