这是否可以在Vue的计算(computed)属性中传递参数.Js.我可以看到,当getter/setter使用computed时,他们可以获取一个参数并将其分配给一个变量.从documentation开始:

// ...
computed: {
  fullName: {
    // getter
    get: function () {
      return this.firstName + ' ' + this.lastName
    },
    // setter
    set: function (newValue) {
      var names = newValue.split(' ')
      this.firstName = names[0]
      this.lastName = names[names.length - 1]
    }
  }
}
// ...

这是否也可能:

// ...
computed: {
  fullName: function (salut) {
      return salut + ' ' + this.firstName + ' ' + this.lastName    
  }
}
// ...

其中computed属性接受一个参数并返回所需的输出.然而,当我try 这一点时,我得到了以下错误:

vue.常见的js:2250 Uncaught TypeError:fullName不是函数(…)

我应该在这种情况下使用方法吗?

推荐答案

最有可能的是,您希望使用一种方法

<span>{{ fullName('Hi') }}</span>

methods: {
  fullName(salut) {
      return `${salut} ${this.firstName} ${this.lastName}`
  }
}

更详细的解释

从技术上讲,您可以将计算(computed)属性与如下所示的参数一起使用:

computed: {
   fullName() {
      return salut => `${salut} ${this.firstName} ${this.lastName}`
   }
}

(感谢Unirgy为此提供的基础代码.)

计算(computed)属性和方法之间的区别在于,只有当它们的依赖关系发生变化时,computed properties are cachedcomputed properties are cached才会发生变化.method will evaluate every time it's called.

如果需要参数,在这种情况下,与方法相比,使用计算(computed)属性函数通常没有任何好处.虽然它允许将参数化的getter函数绑定到Vue实例,但会丢失缓存,因此实际上没有任何yield ,实际上,可能会 destruct react 性(AFAIU).关于Vue的更多文档

只有在需要参数化的情况下才能使用have to.例如,这种情况发生在Vuex年.在Vuex中,这是从存储同步获取参数化结果的唯一方法(操作是异步的).因此,Vuex的官方文档中列出了这种方法

Javascript相关问答推荐

自动牌滑杆中最左侧的牌未完全显示

在前端使用Joi包时无法抛出自定义错误消息

可以将SuperTest导入为ES 6模块吗?

使用NgDeliverentOutlet和动态内容投影的Angular 渲染组件

为什么在获取回调内设置状态(不会)会导致无限循环?

react 路由加载程序行为

对象和数字减法会抵消浏览器js中的数字

仅圆角的甜甜圈图表

被CSS优先级所迷惑

调用removeEvents不起作用

react—router v6:路由没有路径

Next.js(react)使用moment或不使用日期和时间格式

如何使用JavaScript将文本插入空div

Html文件和客户端存储的相关问题,有没有可能?

我在Django中的视图中遇到多值键错误

如何将数据块添加到d3力有向图中?

为什么客户端没有收到来自服务器的响应消息?

使用auth.js保护API路由的Next.JS,FETCH()不起作用

在FAQ Accodion应用程序中使用React useState时出现问题

当标题被点击时,如何使内容出现在另一个div上?