首页 > 其他分享 >vue 计算属性

vue 计算属性

时间:2024-05-06 17:23:43浏览次数:17  
标签:vue computed firstName lastName person Vue 计算 属性

计算属性

在 Vue 2 中使用 computed

在 Vue 2 中,计算属性是通过 computed 选项来定义的。

示例中,我们定义了一个 fullName 计算属性,它会根据 firstNamelastName 的值计算出完整的姓名。

export default {
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    };
  },
  computed: {
    fullName() {
      return this.firstName + ' ' + this.lastName;
    }
  }
};

进阶:输入姓和名会显示全名,以及输入全名分别显示姓和名

<template>
  <div>
    <h1>计算属性</h1>
    <p>姓:<input type="text" v-model="person.firstName"></p>
    <p>名:<input type="text" v-model="person.lastName"></p>
    <p>全名:{{ fullName }}</p>
    <p>全名修改:<input type="text" v-model="fullName"></p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      person: {
        firstName: '',
        lastName: ''
      }
    };
  },
  computed: {
    fullName: {
      get() {
        return this.person.firstName + this.person.lastName;
      },
      set(value) {
        this.person.firstName = value.slice(0, 1);
        this.person.lastName = value.slice(1);
      }
    }
  }
};
</script>

在 Vue 3 中使用 computed

示例中,我们使用了 Vue 3 的 computed 函数来定义计算属性 fullName。在 Vue 3 中,computed 函数接收一个函数作为参数,该函数返回计算属性的值。

需要注意的是,在 Vue 3 中,计算属性的定义方式发生了变化,不再是直接在 computed 选项中定义,而是使用 computed 函数来创建计算属性。

import { computed } from 'vue';

export default {
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    };
  },
  computed: {
    fullName: computed(function() {
      return this.firstName + ' ' + this.lastName;
    })
  }
};

进阶:输入姓和名会显示全名,以及输入全名分别显示姓和名

<template>
    <h1>计算属性</h1>
    <p>姓:<input type="text" v-model="person.firstName"></p>
    <p>名:<input type="text" v-model="person.lastName"></p>
    <p>全名:{{ person.fullName }}</p>
    <p>全名修改:<input type="text" v-model="person.fullName"></p>
</template>

<script setup>
    import {reactive,computed} from "vue";

    const person = reactive({
        firstName: '',
        lastName: ''
    })
    person.fullName=computed({
        get(){
            return person.firstName+person.lastName
        },
        set(value){
            person.firstName=value.slice(0,1)
            person.lastName=value.slice(1)
        }
    })

</script>

总结

  • 在 Vue 2 中,计算属性通过 computed 选项来定义,直接通过计算属性名称访问。
  • 在 Vue 3 中,计算属性通过 computed 函数来创建,需要导入并调用,通过访问 .value 属性来获取计算属性的值。

标签:vue,computed,firstName,lastName,person,Vue,计算,属性
From: https://www.cnblogs.com/unrealqcc/p/18175456

相关文章

  • 使用 VS Code 调试 Vue.js 项目
    Vite如果是通过create-vue创建的项目,则修改vite.config.ts配置文件,在开发环境生成sourcemap文件。exportdefaultdefineConfig({build:{sourcemap:true,},//otherconfigs...});更多配置,请参考:https://vitejs.dev/config/build-options.html#build-s......
  • vue实现使用JSZip批量下载图片
    1importJSZipfrom"jszip";2import{saveAs}from'file-saver';3import$from'jquery'45//jszip打包下载图片6functionsaveImgZip(imgUrlArrs,typeTxt){7varimgUrlArr=[];//图片列表8imgUrlArr=imgUrlAr......
  • vue
    vue打包命令:vuerunbuildvue脚手架搭建:npminstall-g@vue/clinpminstall是用来安装项目中所需的所有依赖项的命令总的来说,@vue/cli是VueCLI的工具集,用于全局安装以便在命令行中使用,而@vue/cli-service是VueCLI的一个核心服务模块,用于在项目中执行开发任务。通常......
  • 入门学习Docker部署Vue+NetCore+MsSql
    最近vultr的主机经常忘了续租,导致账号被禁用,主机被删掉每次重新部署都忘了之前怎么弄的,要重新查好多资料每个月6美金的主机XShell连接主机IP先安装docker开启docker服务镜像容器tar文件 saveload dockerimagesdockercommitbuildDockerfilepull仓库 查看......
  • springboot~CompletableFuture并行计算
    在Spring中,CompletableFuture通常用于异步编程,可以方便地处理异步任务的执行和结果处理,CompletableFuture是Java8引入的一个类,用于支持异步编程和并发操作。它基于Future和CompletionStage接口,提供了丰富的方法来处理异步任务的执行和结果处理。下面是CompletableFuture......
  • vue3 个人自适应配置方案
    ``使用插件"postcss-pxtorem":"^6.1.0",postcss.config.cjs文件配置module.exports={plugins:{autoprefixer:{overrideBrowserslist:["Android4.1","iOS7.1","Chrome>31......
  • 小伙伴说VuePress太简洁了,还有没有其他博客推荐?
    写在前面自从上一篇文章发出来之后,不少小伙伴开始用VuePress搭建自己的个人网站。如果小伙伴也想用VuePress零代码零成本搭建个人网站,可以看过来传送门......
  • *uniapp-vue3-ts项目配置eslint+prettier+husky
    代码检查工具:Eslint代码格式化工具:prettierhusky:Git客户端增加了钩子(hooks)功能,使得在特定阶段执行一系列流程,以保证每一个commit的正确性vscode安装插件:    安装eslint+prettier:npmi-Deslintprettiereslint-plugin-vue@vue/eslint-config-prettier@vu......
  • vue + Ant Design Vue 表格自定义勾选状态
     //勾选规则//1.勾选当前不勾联动选子级//2.勾选当前需要联动勾选父级//3.勾选当前取消需要联动取消子级和联动取消父级,如果存在平级则不取消父级<template><a-spin:spinning="state.spining"><div><a-modalref="mModal"id="mModal"class="partial......
  • Vue3 除了 keep-alive,还有哪些页面缓存的实现方案
    引言有这么一个需求:列表页进入详情页后,切换回列表页,需要对列表页进行缓存,如果从首页进入列表页,就要重新加载列表页。对于这个需求,我的第一个想法就是使用keep-alive来缓存列表页,列表和详情页切换时,列表页会被缓存;从首页进入列表页时,就重置列表页数据并重新获取新数据来达到列表......