vue 计算属性get set

html 复制代码
<template>
  <div id="app">
    <h1>用户信息</h1>
    <p>全名:{{ fullName }}</p>
    <input v-model="fullName" placeholder="请输入全名" />
    <p>姓:{{ firstName }}</p>
    <p>名字:{{ lastName }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      firstName: "John", // 名字
      lastName: "Doe", // 姓氏
    };
  },
  computed: {
    // 计算属性 fullName,有 get 和 set
    fullName: {
      // get:用来获取 fullName,返回的是 firstName 和 lastName 拼接后的值
      get() {
        return this.firstName + " " + this.lastName;
      },
      // set:用来设置 fullName,当全名被修改时,分割新的值并更新 firstName 和 lastName
      set(newFullName) {
        const names = newFullName.split(" ");
        this.firstName = names[0]; // 更新 firstName
        this.lastName = names[1] || ""; // 更新 lastName(如果没有姓氏部分,设置为空字符串)
      },
    },
  },
};
</script>

<style>
h1 {
  font-size: 20px;
}
input {
  margin-top: 10px;
}
</style>

简单来说 返回值写get里面,set里面写数据操作

相关推荐
hellokatewj3 分钟前
React Hooks 全解:原理、API 与应用场景
前端·javascript·react.js
袋鱼不重10 分钟前
保姆级教程:让 Cursor 编辑器突破地区限制,正常调用大模型(附配置 + 截图)
前端·后端·cursor
bieao11 分钟前
Vite+Antd+Micro-app中iframe模式下样式闪烁的问题
前端
zhouzhouya14 分钟前
码上星辰,人间烟火:我的2025
前端·程序员·代码规范
江湖yi山人15 分钟前
生产环境的log,上传到开发者的本地服务器
javascript·python
彭涛36123 分钟前
什么是MessageChannel
前端
嘉琪00131 分钟前
provide 和 inject的理解?
前端·javascript·vue.js
匆叔33 分钟前
ESLint,前端项目CTRL+S,自动保存格式化文档,超细
前端
满天星辰33 分钟前
Vue3响应式API-reactive的原理
前端·vue.js
XiaoYu200235 分钟前
第10章 SSE魔改
前端·webassembly