计算属性默认是无法传递参数的

主要用于对当前文件组件的数据(data/props),进行操作,缓存当前计算属性的依赖

而有些情况需要使用到计算属性来传递参数,可以使用闭包函数:

computed: {// 获取数据进行操作computedValue() {return function(val) {console.log(val);};}}

举一个具体例子,项目需要发送文件消息,需要根据文件类型显示文件图标类型,更需要处理文件名称,使用计算属性传参:

页面:

<!-- 文件 文档类型样式 --><div class="typeDoc" :style="{backgroundColor: item.sender == $store.state.userUID?'rgba(2,134,223,0.1)':'rgba(255,255,255,0.5)'}" v-else-if="item.msgType == 'LINK'&& !item.msgcustom"><imgsrc="@/assets/documents/icon-im-doc-zip.png"v-if="item.fileIcon === 'zip'"/><imgsrc="@/assets/documents/icon-im-doc-img.png"v-else-if="item.fileIcon === 'img'"/><imgsrc="@/assets/documents/icon-im-doc-mp4.png"v-else-if="item.fileIcon === 'audio'"/><imgsrc="@/assets/documents/icon-im-doc-pdf.png"v-else-if="item.fileIcon === 'pdf'"/><imgsrc="@/assets/documents/icon-im-doc-ppt.png"v-else-if="item.fileIcon === 'ppt'"/><imgsrc="@/assets/documents/icon-im-doc-txt.png"v-else-if="item.fileIcon === 'txt'"/><imgsrc="@/assets/documents/icon-im-doc-xls.png"v-else-if="item.fileIcon === 'xls'"/><img src="@/assets/documents/icon-im-doc-default.png" v-else /><a class="inner__doc__link" :href="SetLinkFileNameAndPath(item,'path')">{{SetLinkFileNameAndPath(item,'name')}}</a></div>
computed: {SetLinkFileNameAndPath() {// 动态加载文件名称路径及图标return function(item,n) {if(item) {if(n == 'name') {if(item.text.constructor === Object && item.text.constructor !== String) {let indexO = item.text.fileName.lastIndexOf(".");item.fileIcon = this.docIcon(item.text.fileName.slice(indexO + 1));return item.text.fileName;} else if(item.text.constructor === String && item.text.indexOf("{") != -1) {let indexS = JSON.parse(item.text).fileName.lastIndexOf(".");item.fileIcon = this.docIcon(JSON.parse(item.text).fileName.slice(indexS + 1));return JSON.parse(item.text).fileName;} else {let indexP = item.text.split("|")[1].lastIndexOf(".");item.fileIcon = this.docIcon(item.text.split("|")[1].slice(indexP + 1));return item.text.split("|")[1];}} else if(n == 'path') {if(item.text.constructor === Object && item.text.constructor !== String) {return item.text.filePath;} else if(item.text.constructor === String && item.text.indexOf("{") != -1) {return JSON.parse(item.text).filePath;} else {return item.text.split("|")[0];}}}}}
}
methods: {//文档图标docIcon(val) {if (["jpg", "png", "jpeg", "gif", "bmp"].includes(val)) {return "img";} else if (["zip", "rar", "7z", "jar", "cab"].includes(val)) {return "zip";} else if (["ppt", "pptx"].includes(val)) {return "ppt";} else if (["txt", "docx", "doc"].includes(val)) {return "txt";} else if (["pdf"].includes(val)) {return "pdf";} else if (["mp4"].includes(val)) {return "audio";} else if (["xls", "xlsx"].includes(val)) {return "xls";} else {return "default";}},
}

具体的数据操作是可以忽略的,理解具体的使用情景即可。

vue计算属性传参(computed)相关推荐

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

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

  2. Vue 计算属性 computed

    <!--计算属性:1. 定义:要用的属性不存在,要通过已有的属性计算得来2. 原理:底层借助了 Object.defineProperty 方法提供的 getter 和 setter3. get ...

  3. Vue计算属性(computed)和侦听器(watch)

    Vue计算属性(computed)和侦听器(watch) 计算属性(computed) 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.所以不 ...

  4. Vue计算属性- computed:{}

    七. Vue计算属性 计算属性的重点突出在属性两个字上(属性是名词),首先它是个属性其次这个属性有计算的能力(计算是动词),这里的计算就是个函数;简单点说,它就是一个能够将计算结果缓存起来的属性(将行 ...

  5. Vue计算属性实现成绩单,Vue计算属性

    Vue计算属性实现成绩单 代码如下: <!DOCTYPE html> <html><head><meta charset="utf-8"& ...

  6. vue基础-动态class、动态style、vue过滤器、vue计算属性vue基础-动态class、动态style、vue过滤器、vue计算属性

    vue基础-动态class.动态style.vue过滤器.vue计算属性 文章目录 vue基础-动态class.动态style.vue过滤器.vue计算属性 vue基础-动态class vue基础-动 ...

  7. Vue过滤器的传参使用及案例

    Vue过滤器的传参使用及案例 过滤器用于一些常见的文本格式化 过滤器的第二个参数为可选 使用位置 过滤器可以用在两个地方:双花括号插值{{ }}和 v-bind 表达式** 使用方法 {{ 变量 | ...

  8. Vue——计算属性(计算属性简介、计算属性和方法的区别:(面试)、关于计算属性 函数什么情况下调用、案例)

    目录 计算属性(面试) 1.计算属性简介 2.计算属性和方法的区别:(面试) 3.关于计算属性 函数什么情况下调用​​​​​​​ 4.案例:购物车页面计算总价 计算属性(面试) 1.计算属性简介 把c ...

  9. Vue动态路由传参和监听路由

    Vue动态路由传参 query传参 params传参 //定义Detail路由 {path: '/detail/:id',name: 'Detail'component: () => impor ...

最新文章

  1. 移动端HTML5性能优化
  2. HDOJ/HDU 2566 统计硬币(公式~遍历~)
  3. Python3字符串复制
  4. ES6笔记(1) -- 环境配置支持
  5. 思科认证36个热门考点汇总
  6. select2删除选中项,allowClear设置
  7. 4-6:TCP协议之滑动窗口
  8. hadoop--HDFS搭建客户端API环境
  9. redis 3.0 java 工具包_redis分布式锁工具包,提供纯Java方式调用
  10. 推荐系统组队学习——协同过滤
  11. 计算机语言dial,Go语言Dial()函数:建立网络连接
  12. 字号计算,字体大小随窗口高度变化
  13. 电脑自动化考证难不难
  14. pymc3学生成绩分析和预测(补充+翻译)
  15. android os 小米系统,小米全新OS系统MIUI 12发布:挑战iOS、22款机型首发升级
  16. 【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作)
  17. 【Opencv实战】纯手工代码打造车牌检测程序,秒变智能检测你值得拥有~(附源码)
  18. 企查查app sign算法破解初步探索
  19. 三年级计算机怎么进入到游戏,三年级开始,带孩子玩7个游戏训练成“最强大脑”...
  20. Java练习(十九):编写代码,实现AOP的@Around操作 (两种写法)

热门文章

  1. nvidia docker安装和驱动安装
  2. python中iterable_Python的Iterable和Iterator
  3. 塔式服务器冷却系统图示,塔式,刀片和机架是三种不同类型的服务器区别
  4. 如何实现一键登录,提升用户登录体验?
  5. 脏读、幻读、不可重复读
  6. 黑马程序员--“云计算”逆天!月薪14000大神的经验爆料,不看后悔!
  7. Android Studio运行手机框很大 屏幕很小的解决办法
  8. 在CentOS 8上设置Kibana Elasticsearch和Fluentd
  9. Redis——性能优化与技术选型原理
  10. 大学心理学考卷惊现雷人经典60句