下面是一个计算(computed)属性的代码.

computed: {
  filterText: {
    get() {
      return this.filter; // it's a vuex state
    },
    set(value) {
      this.setFilter(value); // it's a vuex action
    }
  }
}

现在,我想在基于类的组件中编写它.我觉得getter应该是这样的,但是怎么写setter呢?

get filterText() {
  return this.filter
}

推荐答案

基于类的组件对计算(computed)属性使用getset:

get filterText() {
  return this.filter
}

set filterText(value) {
  this.filter = value
}

用TypeScript编写的单个文件组件的 struct 如下:

<script lang="ts">
  import { Component, Vue } from 'vue-property-decorator'

  @Component
  export default class MyClass extends Vue {
    private filter: string = ''

    public get filterText(): string {
      return this.filter
    }

    public set filterText(filter: string) {
      this.filter = filter
    }
  }
</script>

Vue.js相关问答推荐

如何使用composition api v-model Select 框获取其他JSON 值?

如何在Vue3中使用vuechartjs 5.2从父组件更新图表

在 onMounted 之前渲染的 Vue 模板

在 Vue.js 2.6 的 Javascript 中访问 的内容

Vuejs - 更新数组中对象的数组

Webpack 导入的模块不是函数

混合使用 React 和 Vue 是个好主意吗?

如何使用 vue.js 获取本地 html 文件?

在下拉菜单上使用箭头键滚动

当前端和后端位于虚拟 docker 网络中时,如何使用 axios 寻址后端主机

Nuxt:显示静态文件夹中的本map像

为什么 vue 文档说 refs 不是响应式的,而实际上它们是响应式的

Vue.js:从 parent父Vue 获取数据

如何禁用 nuxt 默认错误重定向

使用 Vue-cli,我在哪里声明我的全局变量?

Vue Cli 3 不允许我在 Webpack 中处理 SVG

如何在 Vue.js 应用程序中正确下载 Excel 文件?

Vue.JS 2.0 修改不相关数据时速度慢

表格行上的 Vuejs 转换

仅在提交时验证 vuetify 文本字段