vue全家桶进阶之路33:Vue3 计算属性computed
在Vue3中,计算属性可以使用computed函数来定义。
computed函数接受两个参数:第一个参数是一个函数,该函数返回计算属性的值;第二个参数是一个可选的配置对象,可以包含getter和setter函数,以及控制计算属性缓存的缓存配置。
Vue3中的计算属性与Vue2中的计算属性相比有以下几个变化:
使用
computed函数 Vue3中使用computed函数来定义计算属性,而不是Vue2中使用computed属性。支持
ref和reactive响应式对象 Vue3中的计算属性不仅支持data对象上的响应式属性,还支持ref和reactive响应式对象。计算属性不再是组件选项 Vue3中的计算属性不再作为组件选项,而是在
setup()函数中定义。更好的性能 Vue3中的计算属性与Vue2相比具有更好的性能。Vue3通过使用基于Proxy的响应式系统,优化了计算属性的性能。此外,Vue3还引入了缓存策略,以避免计算属性的重复计算。
下面是一个使用Vue3中的computed函数定义计算属性的示例:
import { computed, reactive } from 'vue';
export default {
setup() {
const state = reactive({
firstName: 'John',
lastName: 'Doe'
});
const fullName = computed(() => `${state.firstName} ${state.lastName}`);
return { fullName };
}
};
在这个例子中,state对象是使用reactive函数定义的响应式对象。fullName计算属性的值是通过连接state.firstName和state.lastName获得的。请注意,fullName计算属性是在setup函数中定义的。
你可以在模板中使用fullName计算属性:
<template>
<div>{{ fullName }}</div>
</template>
每当state.firstName或state.lastName发生更改时,fullName计算属性的值将重新计算。这是因为Vue会自动追踪state.firstName和state.lastName的依赖关系,并在依赖项发生更改时重新计算计算属性的值。
以下是一个使用computed函数定义计算属性的非常基本的操作示例:
<script>
import { computed } from "vue";
export default {
setup() {
const firstName = "John";
const lastName = "Doe";
const fullName = computed(() => `${firstName} ${lastName}`);
return { fullName };
},
};
</script>
在这个例子中,fullName计算属性的值是通过将firstName和lastName连接起来获得的。注意,由于Vue3使用了Composition API,因此计算属性是在setup函数中定义的。
可以在模板中使用fullName计算属性:
<template>
<div>{{ fullName }}</div>
</template>
每当firstName或lastName发生更改时,fullName计算属性的值将重新计算。这是因为Vue会自动追踪firstName和lastName的依赖关系,并在依赖项发生更改时重新计算计算属性的值。
以下是另一个示例:
<template>
<div>{{ num1 }}---{{ num2 }}---{{ num3 }}</div>
<button @click="add">add</button>
</template>
<script>
import { defineComponent, computed, ref } from "vue"; export default defineComponent({
setup() {
let num1 = ref(10);
let num2 = ref(11);
let num3 = computed(() => {
return num1.value + num2.value;
});
let add = () => {
num1.value++;
};
return {
num1,
num2,
num3,
add,
};
},
});
</script>
vue全家桶进阶之路33:Vue3 计算属性computed的更多相关文章
- Vue.js 源码分析(六) 基础篇 计算属性 computed 属性详解
模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护,比如: <div id="example">{{ messag ...
- Vue 全家桶 + Electron 开发的一个跨三端的应用
代码地址如下:http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...
- Vue全家桶高仿小米商城
大家好,我是河畔一角,时隔半年再次给大家带来一门重量级的实战课程:<Vue全家桶高仿小米商城>,现在很多公司都在参与到商城的构建体系当中,因此掌握一套商城的标准开发体系非常重要:商城的开始 ...
- vue证明题一,vue全家桶的构成
简单说下vue的构成,当然是简单为主,网上这东西满天飞,简单说几句就ok 1.vue是什么 vue读作view,是一种js框架.只关注于视图层,操作内容包括js,html,css 2.vue全家桶是什 ...
- 用 Vue 全家桶二次开发 V2EX 社区
一.开发背景 为了全面的熟悉Vue+Vue-router+Vuex+axios技术栈,结合V2EX的开放API开发了这个简洁版的V2EX. 在线预览 (为了实现跨域,直接npm run dev部署的, ...
- Vue全家桶
简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...
- 从零开始系列之vue全家桶(3)安装使用vuex
什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. ...
- 使用vue全家桶制作博客网站
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...
- 转载: 使用vue全家桶制作博客网站 HTML5 移动网站制作的好教程
使用vue全家桶制作博客网站 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue. ...
- Vue全家桶介绍
一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...
随机推荐
- 【Beat】Scrum Meeting 4
时间:2021年6月29日 1.各个成员今日完成的任务以及贡献小时数 姓名 今日完成任务 贡献小时数 鑫 继续进行bug的修改 4 荣娟 继续进行bug的修改 4 亚楠 继续进行bug的修改 4 桂婷 ...
- Mongodb between 时间范围
db.getCollection("Order").find({ "Supplier.ServiceCode": "CNI", " ...
- goujian
第二章的内容先对第一张来说更偏向于技术性,在团队合作中,如何保证自己所负责模块的质量的稳定,这就对自身的技术和一些良好的代码书写习惯有一定的要求.这里除了之前接触的代码的整齐(段落划分),变量值和文件 ...
- pytest用例管理框架实战(基础篇)
先安装pip install pytest pytest用例管理框架 默认规则: 1.py文件必须以test_开头或者_test结尾 2.类名必须以test开头 3.测试用例必须以test_开头 ge ...
- Python笔记--练习题(都来瞧一瞧,看一看嘞)
利用Python对文件进行操作 重新写入的文件如下图所示: 统计学生成绩文件的最高分最低分和平均分 Python如何统计英文文章出现最多的单词 Python统计目录下的文件大小 Python按照文件后 ...
- 关于IDEA发出基于APR的本地库加载失败错误的解决------->求解决!
问题描述 在没有使用Maven项目启动该Project时,Tomcat可以正常使用,但在这里会显示这样的错误: 这个错误,已经查了两天了,相关文件以及解决方法已经翻烂了,还没有解决,放出来集思广益一下 ...
- badapple最后一步,讲黑白图转为字符图,然后输出就行了。
from PIL import Image import os char_s = list(" .,-'`:!1+*abcdefghijklmnopqrstuvwxyz<>()\ ...
- Spring Data Redis 框架
系统性学习,移步IT-BLOG 一.简介 对于类似于首页这种每天都有大量的人访问,对数据库造成很大的压力,严重时可能导致瘫痪.解决方法:一种是数据缓存.一种是网页静态化.今天就讨论数据缓存的实现 Re ...
- Windows无线连接路由器成功但无法网
Windows10连接Wifi成功,任务栏无线图标没有感叹号,但是无法连接到网络,重启电脑才能连接上,手机连接这个网络却可以一直联通.本人使用的是intel 9260无线网卡,经过测试,我通过这个方法 ...
- sqlmap的基本使用
sqlmap的基本使用 一.注入 1.查询是否存在注入点 sqlmap -u "http://www.xx.com?id=x" --dbs 检测有哪些数据库 --current-d ...