当前位置: 首页 > news >正文

【vue3】05. 跟着官网学习vue3

每日鸡汤:所有真实的快乐,都来自很久的努力

前言

本篇文章学习 【计算属性】


一、使用场景

使用的语法,基本没什么难度,官网信息已经很详细,简单来说一下我在项目中遇到的,关于计算属性的使用场景吧,仅供参考

1. 数据格式化

假设有接口返回的,日期的数据字段createDate,我们要将这个字段渲染到模版上,那么我们可以使用计算属性,使用计算后的值渲染模版

const res = computed(()=> {
    return formatDate(createDate) // 假设你有一个用来格式化时间的函数formatDate
})

2. 模版中使用object某个属性时

假设,你在vuex 中存放了一个object类型的userInfo字段

const userInfo = {
    username: 'my name',
    age: 12,
}

现在,在头像组件中需要单独显示用户名,你就没有必要在模版中写 【userInfo.usename】,直接这样写的话,如果userInfo为空,就会报错!!所以你不如用计算属性,也排除了会报错的情况。

const username = computed(()=> {
    return userInfo.username || ''
}}

3.获取数组的长度

这个场景很常用,list.length,如果在某个地方频繁用到,可以直接使用计算属性,代码会变得更简洁。

4.动态展示的菜单

  有一个组件功能【查看列表、帮助、升级】要求只有在非会员的时候展示【升级】菜单,而你用for循环在模版中渲染了菜单,那么你可以使用computed计算用于渲染的数组

const isVip = ref(false)
const menu = computed(() => {
    const arr = ['查看列表', '帮助'] 
    if(isVip) {
        arr.push('升级')
    }
     
    return arr
})

 5. 获取store里的值

假设你使用vuex存了不少数据,那么获取store里面的值使用computed属性是最佳选择,因为store 可能会被其他组件更新,随意需要动态取值

// 假设根据存在store里面的用户信息的token的判断是否是登录状态
const store = useStore()
const isLogin = computed(()=> {
    return store.state.userInfo?.token || false
})

总结 

总之,计算属性的使用场景大同小异,自己用多了,体会一下就可以了。

相关文章:

  • 金九银十,阿里高级测开给面试者的十大建议
  • 使能OpenHarmony富设备产品化落地,润和软件HH-SCDAYU110通过兼容性测评
  • Docker 之 高级篇
  • JS | “购物车”增、删、改、查的案例
  • MySql截取字符串的几个常用函数详解
  • 多线程-线程与进程、线程的实现方式(第十八天)
  • STL:string容器详解
  • [Linux]进程间通信(system V共享内存 | system V信号量)
  • 分布式事务及其实现方案
  • Flink系列-背压(反压)
  • 随机森林实战(分类任务+特征重要性+回归任务)(含Python代码详解)
  • 面向对象编程原则(02)——单一职责原则
  • C++面向对象程序设计(第2版)第二章(类和对象的特性)知识点总结
  • 学习springboot杂乱无章的笔记
  • java计算机毕业设计红河旅游信息服务系统源码+数据库+系统+lw文档+mybatis+运行部署
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 3.7、@ResponseBody 和 @RestController
  • egg(89)--egg之redis的发布和订阅
  • emacs初体验
  • KMP算法及优化
  • Laravel 中的一个后期静态绑定
  • mysql外键的使用
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 批量截取pdf文件
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 手写双向链表LinkedList的几个常用功能
  • 算法之不定期更新(一)(2018-04-12)
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • ionic异常记录
  • 阿里云重庆大学大数据训练营落地分享
  • 如何在招聘中考核.NET架构师
  • 数据库巡检项
  • ​flutter 代码混淆
  • ​iOS实时查看App运行日志
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (原創) 物件導向與老子思想 (OO)
  • (转)关于pipe()的详细解析
  • .naturalWidth 和naturalHeight属性,
  • .NET 的程序集加载上下文
  • .Net 路由处理厉害了
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • ??javascript里的变量问题
  • [ 蓝桥杯Web真题 ]-布局切换
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [C++] Windows中字符串函数的种类
  • [C++]——带你学习类和对象
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • [JS入门到进阶] 前端开发不能写undefined?这是误区!
  • [leetcode] Longest Palindromic Substring
  • [lintcode easy]Maximum Subarray
  • [Linux] day07——查看及过滤文本