1.方法

  在vue模板里函数被定义为方法来使用,将函数放在methods对象里,作为一个属性,就可以在模板里使用它

  this:在方法中this指向该方法所属的组件,可以使用this方文档data对象的属性和其他方法。this.属性/方法名  即可

2.计算属性

  计算属性介于data的对象和方法之间,可以像访问data对象一样访问,但需要函数的方式来定义它

    计算属性会被缓存,只会执行一次,之后的每次调用都用的是被缓存的值。只有依赖值发生变化时代码才会被再次执行

  这种方式可以确保代码只有在必要的时候执行,时候处理一些资源密集型的工作

  计算属性和方法的另一个区别时,计算属性可以设置值,并在设置过程中做一些操作;实现这一点需要将计算属性由函数改为带有get,set的属性对象

<div id="app">{{numberT}}</div>
<!-- built files will be auto injected -->
<script>
new Vue({
el:"#app",
data:{
number:{
numbers:[,,]
}
},
computed:{
numberT:{
get(){
return numbers.reduce((sum,val)=>sum+val);
},
set(newValue){
const oldValue = this.numberT;
const difference = newValue - oldValue;
this.numbers.push(difference)
}
}
}
})
</script>

  因业务逻辑需要,在实际项目中利用此方法来处理父级传来的数据,并在set中调用父级函数,来控制弹框的开关

/*  子组件 */
//子组件弹框
<el-dialog :title="listTitle" :visible.sync="listShow">、
</el-dialog>
//接收参数
props: [ "dialogTableVisible",]
computed: {
listShow: {
get() {
return this.dialogTableVisible;
},
set() {
this.close();
}
},
}
methods: {
close() {
this.$emit("closepop");
},
}
/* 父组件 */
data(){
return {
dialogTableVisible: false,
}
}
methods: {
closepop() {
this.dialogTableVisible = false;
}
}

3.使用data对象,方法还是计算属性?

  data:可以存储字符串,数组,对象等数据。最适合纯粹的数据!

  方法:存储函数,并在模板中调用

  计算属性:缓存函数,像访问data对象中的属性一样调用。适用于更加复杂的表达式。需要频繁重复使用,基本像是一个data对象的扩展增强版

  或许上述不够形象,我们直接看表吧

  可读? 可写? 可就收参数? 需要运算? 有缓存?
data对象 无效,无需运算
方法
计算属性

VUE回顾基础3的更多相关文章

  1. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  2. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  3. 一个综合实例讲解vue的基础知识点。

    本文通过一个简单的实例来讲解一下vue的基本知识点.通过这个综合实例的讲解,vue的基础知识就会掌握的差不多了. 首先看一下项目的效果:

  4. Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  5. Vue组件基础

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

  6. react router @4 和 vue路由 详解(一)vue路由基础和使用

    完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1.vue路由基础和使用 a.大概目录 我这里建了一个router文件夹,文件夹下有in ...

  7. Vue入门基础(火柴)

    前言 由于个人十分欣赏博友——小火柴的蓝色理想,他的博文我看了大多数,觉得十分的精彩,然而很多都是看后即忘.我想除了没有经常动手敲代码,更可能是在看的时候忽略了很多细节,因此打算把他的博文通通给“抄袭 ...

  8. vue组件基础之父子传值

    可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ...

  9. vue入门基础知识点测试

    vue入门基础知识点测试 1.文本(值绑定){{var}}----控制<div></div>的值显示当前时间,且1秒更新一次.(可查阅 setinterval 函数,时间Dat ...

随机推荐

  1. 工具系列 | PHPSTROM 连接Docker容器 && 配置XDEBUG调试

    Docker 客户端配置 PHPSTROM 配置 选择连接 容器日志 配置Xdebug 开启Debug模式 打断点 浏览器访问该项目地址:http://wiot.frp.tinywan.top/

  2. vs2015 项目调试出现未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    今天在调试项目不知道怎么了,突然就报未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040) ...

  3. 统计git提交代码量

    # a新增行数,d删除行数 git log  --author="`git config --get user.name`" --pretty="%H" --a ...

  4. 【大数据】Spark On Yarn

    Spark在YARN中有yarn-cluster和yarn-client两种运行模式: I. Yarn client 在yarn-client模式下,Driver运行在Client上,通过Applic ...

  5. async异步流程控制神器

    async https://www.npmjs.com/package/async Async is a utility module which provides straight-forward, ...

  6. vSphere SDK for Java - 为虚拟机添加磁盘

    示例代码: import com.vmware.vim25.*; import com.vmware.vim25.mo.*; import org.springframework.stereotype ...

  7. 记录一次TraceId的问题

    多服务部署的时候,各个服务通过httpClient进行调用时候,有时候出现问题,需要进行追查.但是如果没有一个标记,就会很迷茫,特别是多个服务来回调用,就无法快速定位问题.这个时候一般是使用MDC的 ...

  8. linux添加虚拟内存交换内存,以及设置优先使用交换内存

    场景:在网上买了台低配置服务器,1c1g,内存太小了,于是打起了交换内存的注意.上网一查,居然还真可以.以下是具体步骤 首先新建一个交换分区文件夹 dd if=/dev/zero of=/usr/sw ...

  9. javascript中var、let、const的区别

    这几天修改别人的js,发现声明变量有的用var,有的用let,那它们有什么区别呢? javascript中声明变量的方式有:var.let.const 1.var (1)作用域: 整个函数范围内,或者 ...

  10. .NET Core开源Quartz.Net作业调度框架实战演练

    一.需求背景 人生苦短,我用.NET Core!作为一枚后端.NET开发人员,项目实践常遇到定时Job任务的工作,在Windows平台最容易想到的的思路Windows Service服务应用程序,而在 ...