当前位置:首页 > VUE

vue get set 实现

2026-03-29 18:50:05VUE

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

1. 使用 computed 属性

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

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

2. 使用 Object.defineProperty

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

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 提供更灵活的方式:

vue get set 实现

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 实现走势图的方法 使用 ECharts 库 ECharts 是一个强大的数据可视化库,支持多种图表类型,包括走势图(折线图)。在 Vue 项目中可以通过 vue-echarts 封装库或直接使…

vue实现画图

vue实现画图

Vue 实现画图功能 在 Vue 中实现画图功能通常需要结合 HTML5 的 <canvas> 元素或第三方库。以下是几种常见的方法: 使用原生 Canvas API 通过 Vue 直接…

vue实现toggle

vue实现toggle

Vue 实现 Toggle 功能 在 Vue 中实现 toggle(切换)功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 和 v-on 通过 v-model 绑定数据,结合…

vue 实现滑动

vue 实现滑动

Vue 实现滑动效果的方法 在Vue中实现滑动效果可以通过多种方式,以下是几种常见的方法: 使用CSS过渡和动画 通过Vue的<transition>组件结合CSS过渡或动画实现滑动效果…

vue实现分步

vue实现分步

Vue 实现分步功能 在 Vue 中实现分步功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 通过动态组件切换不同的步骤内容,结合 v-if 或 component 标签实现分步逻辑。…

vue最佳实现

vue最佳实现

Vue 最佳实践 组件设计 组件应遵循单一职责原则,每个组件只负责一个功能模块。命名采用 PascalCase(如 UserProfile.vue),模板中使用 kebab-case(如 <us…