vue中的计算属性传参

目录
  • vue计算属性传参
    • 我们来看看下面的示例
  • vue计算属性传参,根据值不同,渲染相应的内容
    • 业务描述

vue计算属性传参

最近很多小伙伴问到,计算属性怎么做到像普通函数一样传参呢?

针对这个问题

我们来看看下面的示例

<template>
    <p>{{ getCallerName }}</p>
 </template>
<script>
export default {
    props: {
        callRecord: {
            type: Object,
            default: () => ({}),
        }
    },
    computed:{
        // 获取名称
        getCallerName() {
            return 'callerName'
        },
    }
}

这个示例,我们接收一个从父组件传过来的属性值 callRecord,对象类型

需求:我们需要根据接收值中的type字段,去判断应该解析名称为“主叫名称”还是“被叫名称”

因为计算属性具有缓存效果,所以我们期望用计算属性去获取(当然,过滤器也能使用,方法有很多,这里不用较真)

所以,这里我们就要想办法把我们的值当做参数传进去。

官网并没解释计算属性应该怎么传值,但是呢,计算属性都会返回一个值,基于这个条件,我们就想到了另一个只知识点 闭包

闭包:闭包就是能够读取其他函数内部变量的函数,简单点说,就是嵌套函数(关于闭包的解释和使用,大家可以查阅相关资料,这里就不过多赘述了)

有了思路,我们就开始试试看

<template>
    <p>{{ getCallerName(callRecord) }}</p>
 </template>
<script>
export default {
    props: {
        callRecord: {
            type: Object,
            default: () => ({}),
        }
    },
    computed:{
        // 获取名称
        getCallerName() {
            return callRecord => {
                if (callRecord.type === 1 || callRecord.type === 2) return callRecord.callerName;
                return callerInfo.callerNumber;
            };
        },
    }
}

观察两段代码可以看出,我们在计算属性里return了一个函数,这个函数的参数即我们传入的值,而内部也能直接拿到并使用这个值,这样就做到了计算属性传参(当然,多个参数也是可行的)

好了,以上就是对计算属性如何传参的介绍使用

vue计算属性传参,根据值不同,渲染相应的内容

业务描述

在开发项目过程中,后台传过来一个数组,根据类型显示相应内容。

1、可以直接在渲染出用三目表达式选择渲染内容。可可选择的条件多了,就不适用了,也不利于扩展。

2、采用计算属性。

<template v-for="(item,index) in languageAddDataArray" >
<el-form-item :label=getLanguageType(item.languageType) >
    <el-input v-model="item.content"  auto-complete="off" size="mini"> </el-input>
</el-form-item>
 </template>
<script>
           export default {
         data () {
   languageAddDataArray:[],
         },
        computed:{
  getLanguageType(){
        return function (type) {
   return type==1?'中文':'英文';
        }
   }
       }
           }
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue中动态参数与计算属性的使用方法

    一,动态参数 从 2.6.0 开始,可以用方括号括起来的 JavaScript 表达式作为一个指令的参数: <a v-bind:[attributeName]="url"> - 这里的 attributeName 会被作为一个 JavaScript 表达式进行动态求值,求得的值将会作为最终的参数来使用.例如,如果你的 Vue 实例有一个 data property attributeName,其值为 "href",那么这个绑定将等价于 v-bind:hr

  • vue计算属性想要传入参数如何解决

    目录 vue计算属性想要传入参数怎么办 先讲解决方案 再讲一下我遇到的问题 下面这样解决 vue计算属性computed使用注意事项(有缓存) 应该如何选择? 总结 vue计算属性想要传入参数怎么办 先讲解决方案 可以通过return 一个function来实现,在function中传入想要传给computed属性的参数 <q-icon :name="getIcon(item.icon,index+1)" style="font-size:2em" @clic

  • vue计算属性computed方法内传参方式

    目录 vue计算属性computed方法内传参 计算属性computed与method的区别 什么是计算属性? computed实例 computed与method的区别 关于传参问题 vue计算属性computed方法内传参 遇到头疼的vue计算属性传参问题 经过各种资料查找,亲测有效 index.vue <van-circle       v-model="Ratedata[index].currentRate"          color="#2462E8&qu

  • vue中的计算属性传参

    目录 vue计算属性传参 我们来看看下面的示例 vue计算属性传参,根据值不同,渲染相应的内容 业务描述 vue计算属性传参 最近很多小伙伴问到,计算属性怎么做到像普通函数一样传参呢? 针对这个问题 我们来看看下面的示例 <template>     <p>{{ getCallerName }}</p>  </template> <script> export default {     props: {         callRecord:

  • vue中的计算属性和侦听属性

    计算属性 计算属性用于处理复杂的业务逻辑 计算属性具有依赖性,计算属性依赖 data中的初始值,只有当初始值改变的时候,计算属性才会再次计算 计算属性一般书写为一个函数,返回了一个值,这个值具有依赖性,只有依赖的那个值发生改变,他才会重新计算 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewpo

  • Vue中使用计算属性的知识点总结

    计算属性 有些时候,我们在模板中放入了过多的逻辑,从而导致模板过重,且难以维护.例如: <div id="app"> {{ message.split('').reverse().join('') }} </div> 碰到这样的情况,我们必须看一段时间才能意识到,这里是想要显示变量message的翻转字符串,而且,一旦我们想要在模板中多次使用翻转字符串时,会更加麻烦. 所以,当我们处理复杂逻辑时,都应该使用计算属性. 基础用法 计算属性是Vue配置对象中的属性,

  • vue中的计算属性的使用和vue实例的方法示例

    本文介绍了vue计算属性的使用和vue实例的方法示例,分享给大家,具体如下: 计算属性 在模板中表达式非常便利,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需要多于一个表达式的逻辑,应当使用计算属性. vue 计算属性 当我们想要根据一端业务代码的执行结果来返回属性的值,就可以使用计算属性computed了, 计算属性是一个有结果的函数,有get方法和set方法,get方法,

  • 简单聊聊Vue中的计算属性和属性侦听

    目录 1. 计算属性 语法:  1.简写方式: 语法:  2.完整写法: 2. 监视(侦听)属性 1. 监视属性watch: 2. 深度监视 3. 区别和原则 总结 1. 计算属性 定义 计算属性:要用的属性不存在,要通过已有属性计算得来,计算属性要有一个全新的配置项computed 对Vue来说,data里面的数据就是属性,只要Vue中的数据改变,就会重新解析模板,遇到插值语法里的方法会重新调用 原理 底层借助了Objcet.defineproperty方法提供的getter和setter.

  • Vue中的计算属性与监听属性

    目录 一.为什么要使用计算属性 什么是计算属性 二.计算属性和方法的区别 1.区别 2.计算属性使用场景 三.修改计算属性的值 总结 四.监听属性 1.监听普通属性 2.监听属性和计算属性的区别 3.监听复杂对象 一.为什么要使用计算属性 什么是计算属性 计算属性:可以理解为能够在里面写一些计算逻辑的属性.具有如下的作用: 减少模板中的计算逻辑. 数据缓存.当我们的数据没有变化的时候,不会再次执行计算的过程. 依赖固定的数据类型(响应式数据),不能是普通的传入的一个全局数据. 在数据量比较大的时

  • Vue中computed(计算属性)和watch(监听属性)的用法及区别说明

    目录 计算属性computed 侦听属性watch 计算属性computed 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持异步,当computed内有异步操作时无效,无法监听数据的变化 computed 属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值 如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed 如果computed属性属性值是函数,

  • vue中的计算属性实例详解

    什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example"> {{ message.split('').reverse().join('') }} </div> 这里的表达式包含3个操作,并不是很清晰,所以遇到复杂逻辑时应该使用Vue特带的计算属性computed来进行处理. 计算属性(computed)用于处理复杂逻辑 computed:{ } compu

  • Vue中computed计算属性和data数据获取方式

    目录 computed计算属性和data数据获取 解决方法一 解决方法二 computed计算属性取对象的值,第一次报错undefined 报错和打印值 解决方案 computed计算属性和data数据获取 获取到数据(对象.数组),截取一部分显示到页面中,用computed计算属性来实现截取数据然后直接输出到页面. <div class="detailBox"> <h1 class="detailHead">{{ActiveData.tit

  • Vue中的计算属性和axios基本使用回顾

    目录 1. 什么是计算属性 2. 计算属性的特点 计算属性 3. 如何声明计算属性 4. 计算属性的使用注意点 5. 计算属性 vs 方法 6. axios axios的基本使用 总结 1. 什么是计算属性 计算属性本质上就是一个function 函数,它可以实时监听data 中数据的变化,并 return 一个计算后的新值,  供组件渲染 DOM 时使用. 计算属性指的是通过一系列运算之后,最终得到一个属性值. 这个动态计算出来的属性值可以被模板结构或methods 方法使用. 示例代码如下:

随机推荐