当前位置:首页 > VUE

vue get set 实现

2026-02-17 18:38:55VUE

Vue 中使用 get/set 实现响应式数据

在 Vue 中,可以通过计算属性(computed)或直接使用 Object.defineProperty 实现 getter/setter,以下是两种常见方法:

vue get set 实现

计算属性实现 get/set

export default {
  data() {
    return {
      internalValue: ''
    }
  },
  computed: {
    value: {
      get() {
        return this.internalValue
      },
      set(newValue) {
        this.internalValue = newValue
        console.log('值被修改为:', newValue)
      }
    }
  }
}

使用 Object.defineProperty

export default {
  data() {
    const obj = {}
    Object.defineProperty(obj, 'value', {
      get() {
        return this._value
      },
      set(newValue) {
        this._value = newValue
        console.log('值被修改为:', newValue)
      }
    })
    return {
      obj
    }
  }
}

Vue 3 的 refreactive

Vue 3 的 Composition API 中,refreactive 自动提供 getter/setter:

vue get set 实现

import { ref } from 'vue'

const count = ref(0)
console.log(count.value) // get
count.value = 1 // set

自定义响应式对象

通过 reactive 创建的对象会自动转换属性为 getter/setter:

import { reactive } from 'vue'

const state = reactive({
  count: 0
})
console.log(state.count) // get
state.count++ // set

注意事项:

  • 计算属性的 setter 需要依赖一个 data 属性存储实际值
  • Vue 3 的 ref 在模板中自动解包,无需 .value
  • 直接修改数组或对象属性时,确保使用响应式方法(如 push 而非直接赋值)

标签: vueget
分享给朋友:

相关文章

vue实现飘窗原理

vue实现飘窗原理

vue实现飘窗原理 飘窗效果通常指在页面上悬浮显示的弹窗或通知,跟随页面滚动或固定在某个位置。Vue实现这一效果主要依赖组件化开发、CSS定位和动态数据绑定。 组件结构设计 创建一个独立的Vue组件…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue 动画实现

vue 动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要分为内置组件和第三方库集成。 使用 Vue 内置过渡组件 Vue 的 <transition> 和 <transiti…

vue实现导入

vue实现导入

Vue 实现文件导入功能 使用 <input type="file"> 元素 在 Vue 模板中添加一个文件输入元素,绑定 change 事件处理函数。 <template>…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 Ele…

vue实现模糊

vue实现模糊

Vue实现模糊搜索的方法 在Vue中实现模糊搜索功能通常需要结合输入框和列表渲染,通过监听输入内容动态过滤数据。以下是几种常见实现方式: 使用计算属性实现 计算属性适合处理需要响应式更新的搜索逻辑:…