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 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
Dec 10 Javascript
JavaScript Scoping and Hoisting 翻译
Jul 03 Javascript
js实现数组转换成json
Jun 26 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
深入理解JS函数的参数(arguments)的使用
May 28 Javascript
js改变html的原有内容实现方法
Oct 05 Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 Javascript
Vue动态创建注册component的实例代码
Jun 14 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服务器页面间跳转实现方法
2012/08/02 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
基于jQuery的动态表格插件
2011/03/28 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
华为的Java面试题
2014/03/07 面试题
住宅质量保证书
2014/04/29 职场文书
工作检讨书怎么写
2015/01/23 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
创业计划书之废品回收
2019/09/26 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
详解nginx location指令
2022/01/18 Servers
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
A22国内电台短波广播频率表
2022/05/10 无线电