http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2942|回复: 9

[vue.js学习笔记] [Vue.js]学习笔记-Vue.js计算属性

[复制链接]
发表于 2018-12-11 15:55:40 | 显示全部楼层 |阅读模式
[Vue.js]学习笔记-Vue.js计算属性




导读部分





教程部分


Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
另: Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统

Vue.js 计算属性关键词: computed
计算属性在处理一些复杂逻辑时是很有用, 主要使模板变的简单易懂,计算方法均在js中处理。

下面我们通过两个实例的对比, 来进行计算属性computed的学习,以及computed使用方式:
实例1:

[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 苏飞论坛(sufeinet.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  {{ message.split('').reverse().join('') }}
</div>

<script>
new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  }
})
</script>
</body>
</html>
运行结果:
1.jpg

实例二:

[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 -  苏飞论坛(sufeinet.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <p>原始字符串: {{ message }}</p>
  <p>计算后反转字符串: {{ reversedMessage }}</p>
</div>

<script>
var vm = new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }
})
</script>
</body>
</html>

运行结果如下:
2.jpg

通过上面两个实例看出, 实现的结果均为将message的内容倒序显示。

但是在实例1中, 我们没有使用计算属性,直接在html模板中进行计算, 使模板看起来很复杂, 凌乱。

实例二中,我们使用了计算属性, 在js中将倒序后的内容, 赋值给reversedMessage, 在页面html模板中, 我们可以轻松的引用reversedMessage 去显示数据, 是模板看起来清晰,明了。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2018-12-11 15:56:20 | 显示全部楼层
实例 2 中声明了一个计算属性 reversedMessage 。
提供的函数将用作属性 vm.reversedMessage 的 getter 。
vm.reversedMessage 依赖于 vm.message,在 vm.message 发生改变时,vm.reversedMessage 也会更新。
 楼主| 发表于 2018-12-11 15:59:24 | 显示全部楼层
计算属性关键词: computed。
我们可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。。

具体实例如下:
[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 苏飞论坛(sufeinet.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <p>原始字符串: {{ message }}</p>
  <p>计算后反转字符串: {{ reversedMessage }}</p>
  <p>使用方法后反转字符串: {{ reversedMessage2() }}</p>
</div>

<script>
var vm = new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  },
  methods: {
    reversedMessage2: function () {
      return this.message.split('').reverse().join('')
    }
  }
})
</script>
</body>
</html>


运行结果如下:
3.jpg

 楼主| 发表于 2018-12-11 15:59:58 | 显示全部楼层
通过上例可以清晰的看到, 使用 methods 和 computed,效果上两个都是一样的
 楼主| 发表于 2018-12-11 16:00:17 | 显示全部楼层
但是呢, 使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。
发表于 2018-12-11 16:04:30 | 显示全部楼层
感恩无私的分享与奉献
发表于 2018-12-11 16:20:20 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-11 16:44:49 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-11 17:41:25 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-16 22:27:18 | 显示全部楼层
楼主加油,我们都看好你哦。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-3-29 14:31

© 2014-2021

快速回复 返回顶部 返回列表