回顾Vue计算属性VS其他语法有感

重新回顾官方教程中的到计算属性和侦听器,发觉获益良多,主要就是两点:

  1. 计算属性和其他语法的比较
  2. 计算属性、侦听属性、方法、模板变量的使用

计算属性和其他语法的比较

官方文档用比较的方式说出了计算属性的优点和与其他语法的区别,我就只做一些总结和补充吧

计算属性VS模板变量

  1. 计算属性本为了代替模板变量中的复杂表达式
  2. 多个模板变量中使用时,计算属性更复用

计算属性VS方法

对于同一个功能,计算属性和方法得出的结果是一致,但是计算属性的优势是有缓存,只要相关依赖不改变,计算属性就可以快速在缓存中取值,不用执行函数。

计算属性VS侦听属性

  1. 代码量上:当我们定义一个变量,它依赖于两个以上的数据时,计算属性在写法上就很有优势,代码会少很多重复;
  2. 当函数中有异步操作和开销比较大时,选择侦听属性。官方只提供了正向例子,我提供一个反面例子吧:
<div id="app" class="center">
<h1>test-vue</h1>
<h2>{{msg}}</h2>
</div> new Vue({
el: '#app',
data: { },
computed: {
msg: function() {
//我们希望同通过异步获取数据返回给msg
var params = new URLSearchParams();
params.append('username', 'admin');
params.append('password', '123456');
axios({
method: 'post',
url: "{:U('getInfo')}",
data: params
})
.then(function(response) {
return 'computed1';
})
.catch(function(error) {
});
},
},
})

上面的结果msg:undefined,原因是计算属性中是同步的,不支持异步,所以当需要异步操作时,若为初始化你可以放在生命钩子函数的created进行,若需要重复变化的,请使用侦听属性watch

总结

通过比较,我总结下各种语法的使用:

1.模板变量:

显示数据,可以是一些简单的表达式

2.方法:

  • 作为事件方法
  • 可重复使用的函数

3.侦听属性

  • 异步操作时,应考虑使用
  • 开销较大时,应使用侦听属性

4.计算属性

大部分情况下,应优先使用,优点是:

  • 复用
  • 缓存
  • 简洁
  • 官方推荐

回顾Vue计算属性VS其他语法有感的更多相关文章

  1. Vue计算属性

    github地址:https://github.com/lily1010/vue_learn/tree/master/lesson06 一 计算属性定位 当一些数据需要根据其它数据变化时,这时候就需要 ...

  2. 在做vue计算属性,v-for处理数组时遇到的一个bug

    bug: You may have an infinite update loop in a component render function 无限循环 需要处理的数组(在 ** ssq **里): ...

  3. vue教程2-03 vue计算属性的使用 computed

    vue教程2-03 vue计算属性的使用 computed computed:{ b:function(){ //默认调用get return 值 } } ---------------------- ...

  4. vue 计算属性 实例选项 生命周期

    vue 计算属性: computed:{} 写在new vue()的属性,只要参与运算,数据不发生变化时,次计算只会执行一次,结果缓存,之后的计算会直接从缓存里去结果.如果其中的值发生变化(不管几个) ...

  5. Vue计算属性缓存(computed) vs 方法

    Vue计算属性缓存(computed) vs 方法 实例 <div id="example"> <p>Original message: "{{ ...

  6. vue 计算属性实现过滤关键词

    效果 html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...

  7. Vue 计算属性 && 监视属性

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...

  8. 微信小程序的wxs语法与vue计算属性

    微信小程序的wxs语法 可以当做vue的计算属性和vue filter 使用.因为wxs中的函数可以写在{{   }}中 . 例如: 可用在 <view>{{ foo() }}</v ...

  9. Vue.js之Vue计算属性、侦听器、样式绑定

    前言 上一篇介绍了Vue的基本概念,这一篇介绍一下Vue的基本使用. 一.搭建一个Vue程序 1.1 搭建Vue环境 搭建Vue的开发环境总共有三种方法: 引入CDN <script src=& ...

随机推荐

  1. cf1082 A. Vasya and Book

    中文题意: 思路:我们先看看能不能直接从x翻到y,abs(y-x)%d==0,可以就直接输出abs(y-x)/d咯,不行的话之后有2种操作 1.先翻回到第一页,从第一页看看能不能范到y,不能的话翻到最 ...

  2. 个人音乐博客 h5、css和js等

    浅说一下吧 这个小项目由h5和css还有js和jq写的 主题内容为个人音乐 博客等 首页一级导航栏 以及侧边栏 整合部分图标(侧边栏未添加收起操作 时间原因 会的朋友们可以自行添加一个动画就可以 在m ...

  3. ifram父页面、子页面元素及方法的获取调用

    page1 父页面 <div id="ifram" class="parent1"> <iframe frameborder="0& ...

  4. 「JOISC 2022 Day1」京都观光 题解

    Solution 考虑从\((x_1,y_1)\)走到\((x_2,y_2)\)满足只改变一次方向,则容易求出先向南走当且仅当 \[\frac{a_{x_1} - a_{x_2}}{x_1 - x_2 ...

  5. vue项目Eslint和prettier结合使用

    一.eslint介绍--代码语法检查工具 Eslint是一个代码检查工具,用来检查你的代码语法是否符合指定的规范,ECMAScript标准 二.prettier插件--代码格式化工具 prettier ...

  6. 2.pytest前后置(固件、夹具)处理

    一.setup/teardown/setup_calss/teardown_class 为什么需要这些功能? 比如:我们执行用例之前,需要做的哪些操作,我们用例执行之后,需要做哪些操作 # 在所有用例 ...

  7. jquery根据自定义属性选择标签

    <div myattr="test"></div> 使用$("div[myattr='test']")进行选择 <a href=& ...

  8. 分布式事务框架 Seata 入门案例

    1.  Seata Server 部署 Seata分TC.TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成. 首先,下载最新的安装包 也可以下载源 ...

  9. 有依赖的背包问题(Acwing 10)

    1 # include<iostream> 2 # include<cstring> 3 # include<algorithm> 4 using namespac ...

  10. JavaScript常用工具函数

    检测数据是不是除了symbol外的原始数据 function isStatic(value) { return ( typeof value === 'string' || typeof value ...