VUE回顾基础3
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的更多相关文章
- Vue学习记录第一篇——Vue入门基础
前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- 一个综合实例讲解vue的基础知识点。
本文通过一个简单的实例来讲解一下vue的基本知识点.通过这个综合实例的讲解,vue的基础知识就会掌握的差不多了. 首先看一下项目的效果:
- Vue入门基础
前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...
- Vue组件基础
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- react router @4 和 vue路由 详解(一)vue路由基础和使用
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1.vue路由基础和使用 a.大概目录 我这里建了一个router文件夹,文件夹下有in ...
- Vue入门基础(火柴)
前言 由于个人十分欣赏博友——小火柴的蓝色理想,他的博文我看了大多数,觉得十分的精彩,然而很多都是看后即忘.我想除了没有经常动手敲代码,更可能是在看的时候忽略了很多细节,因此打算把他的博文通通给“抄袭 ...
- vue组件基础之父子传值
可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ...
- vue入门基础知识点测试
vue入门基础知识点测试 1.文本(值绑定){{var}}----控制<div></div>的值显示当前时间,且1秒更新一次.(可查阅 setinterval 函数,时间Dat ...
随机推荐
- Myeclipse安装Maven插件
Myeclipse安装Maven插件 一.下载Maven 官网下载maven插件 http://maven.apache.org/download.cgi 下载apache-maven-3.6.3- ...
- LocalDateTime
@Component public class DateUtil { public final static String EMPTY_SRING = ""; public fin ...
- SwiftUI or Flutter ?
看到这篇好文,忍不住想分享一下 本文转自https://juejin.im/post/5d05b45bf265da1bcc193ff4 版权归原文所有 ------------------------ ...
- windows 安装 Composer 报错
错误信息如下: 解决方法: 在 extension = php_snmp.dll 前加上 ";" 然后重启 php 即可安装
- javascript常用方法 - Array
//1.Aarry方法 // 1.1 Array.from(arrayLike[, mapFn[, thisArg]]) // @arrayLike 想要转换成数组的伪数组对象或可迭代对象. // @ ...
- 谈谈RPC——golang中jsonrpc和grpc的使用
前言 不知从什么时候rpc这个东西开始进入我们的视野,一开始做开发的时候经常使用的都是http,偶尔使用的是socket进行通信,使用的是restful的方式.但是,一次偶然的机会你会发现RPC这个东 ...
- XML读写工具
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import j ...
- Spring Boot接入 apollo 后启动 dubbo 报错
原文地址:https://xobo.org/spring-boot-apollo-dubbo-xml-error/ 某Spring Boot项目接入 apollo 后启动 dubbo 报错Caused ...
- U盘无法格式化解决
我的U盘是fat32格式的,4G以上的东西拖不进去 于是我打算格式化成NTFS的,然后悲剧了,格式化提示windows格式化不成功
- 【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录
ONVIF.RTSP/RTP.FFMPEG的开发实录 前言 本文从零基础一步步实现ONVIF协议.RTSP/RTP协议获取IPC实时视频流.FFMPEG解码.开发环境为WIN7 32位 + VS201 ...