当前位置:首页 > VUE

vue get set 实现

2026-03-29 18:50:05VUE

Vue 中实现 Getter/Setter 的两种方式

1. 使用 computed 属性

Vue 的 computed 属性天然支持 getter/setter 逻辑:

vue get set 实现

data() {
  return {
    privateValue: ''
  }
},
computed: {
  value: {
    get() {
      return this.privateValue
    },
    set(newVal) {
      this.privateValue = newVal.toUpperCase() // 示例:自动转大写
    }
  }
}

2. 使用 Object.defineProperty

适用于需要更底层控制的场景:

vue get set 实现

created() {
  const vm = this
  Object.defineProperty(vm, 'dynamicProp', {
    get() {
      return vm.internalValue * 2
    },
    set(value) {
      vm.internalValue = value / 2
    }
  })
}

3. 在 Vue 3 中使用 refreactive

Vue 3 的组合式 API 提供更灵活的方式:

import { ref, computed } from 'vue'

const count = ref(0)
const doubled = computed({
  get: () => count.value * 2,
  set: (val) => { count.value = val / 2 }
})

注意事项

  • 避免在 setter 中直接修改依赖的属性,会导致无限循环
  • 对于复杂对象,考虑使用深度监听或 Vuex/Pinia 管理状态
  • 在组件间传递时,需要配合 v-model.sync 修饰符使用

标签: vueget
分享给朋友:

相关文章

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-ra…

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <templ…

vue实现pwa

vue实现pwa

Vue 实现 PWA 的步骤 Vue 结合 PWA(Progressive Web App)可以创建离线可用的 Web 应用。以下是实现方法: 安装 Vue CLI 并创建项目 确保已安装 Vue…

vue toast实现

vue toast实现

Vue Toast 实现方法 使用第三方库(推荐) 安装 vue-toastification 库,这是一个功能丰富且轻量级的 Vue Toast 插件。 npm install vue-toast…

vue实现单击

vue实现单击

Vue 实现单击事件的方法 在 Vue 中实现单击事件可以通过 v-on 指令或简写的 @ 符号绑定事件处理器。以下是几种常见的实现方式: 基础用法 通过 v-on:click 或 @click 绑…