当前位置:首页 > VUE

vue get set 实现

2026-01-17 02:12:17VUE

Vue 中实现 getter 和 setter 的方法

在 Vue 中,可以通过计算属性(computed properties)或 Object.defineProperty 实现 getter 和 setter。

使用计算属性实现

计算属性默认只有 getter,但可以通过定义 setter 实现双向绑定。

new Vue({
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    }
  },
  computed: {
    fullName: {
      get() {
        return `${this.firstName} ${this.lastName}`
      },
      set(newValue) {
        const names = newValue.split(' ')
        this.firstName = names[0]
        this.lastName = names[1] || ''
      }
    }
  }
})

使用 Object.defineProperty 实现

可以直接在数据对象上定义 getter 和 setter。

new Vue({
  data() {
    const data = {
      _message: 'Hello'
    }
    Object.defineProperty(data, 'message', {
      get() {
        return this._message
      },
      set(newValue) {
        this._message = newValue
        console.log('Message changed to:', newValue)
      }
    })
    return data
  }
})

在 Vue 3 中使用 refreactive

Vue 3 的 Composition API 提供了更灵活的方式。

vue get set 实现

import { ref, computed } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const doubleCount = computed({
      get: () => count.value * 2,
      set: (val) => {
        count.value = val / 2
      }
    })
    return { count, doubleCount }
  }
}

这些方法都能在 Vue 中实现 getter 和 setter 功能,根据具体场景选择合适的方式。

标签: vueget
分享给朋友:

相关文章

vue实现本地数据存储

vue实现本地数据存储

使用 localStorage 或 sessionStorage Vue 中可以直接调用浏览器提供的 localStorage 或 sessionStorage API 进行数据存储。localSto…

vue登录实现

vue登录实现

Vue 登录实现 实现登录功能通常需要前端与后端配合,Vue 作为前端框架,主要负责表单处理、请求发送和状态管理。以下是常见的实现方式: 表单设计与数据绑定 使用 Vue 的 v-model 实现表…

vue实现Pop

vue实现Pop

Vue 实现 Popover 组件的方法 使用 Vue 内置指令 v-show/v-if 和事件监听 通过 Vue 的指令和事件绑定实现基础的 Popover 功能。定义一个布尔值控制 Popover…

vue实现keepalive

vue实现keepalive

Vue 中实现 keep-alive 在 Vue 中,keep-alive 是一个内置组件,用于缓存动态组件或组件的状态,避免重复渲染和销毁。以下是实现 keep-alive 的几种方法: 基本用法…

vue实现追加

vue实现追加

追加数据到数组或列表 在Vue中追加数据到数组或列表,可以通过push方法或concat方法实现。以下是几种常见的实现方式: 方法一:使用push方法 this.items.push(newIte…

vue实现反转

vue实现反转

实现数组反转 在Vue中反转数组可以通过多种方式实现,以下是几种常见方法: 使用JavaScript原生reverse方法 // 在methods中定义方法 methods: { revers…