26 在Vue3中使用计算属性

概述

计算属性在真实的开发中也经常被用到。

比如在我最近在研发的一个学生管理系统中,学生有"所属省份"和"所属城市"两个独立属性,比如所属省份是四川,所属城市是成都,但是我们显示的时候要显示为"四川/成都",这个时候用计算属性就非常合适。

这节课我们使用计算属性演示一下这个案例。

基本用法

我们创建src/components/Demo26.vue,代码如下:

html 复制代码
<script setup>
import {computed} from "vue";

const student={
  name:"张三",
  province:"四川",
  city:"成都"
}

// 使用计算属性计算用户的位置
const position=computed(()=>{
  return `${student.province}/${student.city}`
})
</script>
<template>
  <div>
    <h3>姓名:{{student.name}}</h3>
    <h3>位置:{{ position}}</h3>
  </div>
</template>

接着,我们修改src/App.vue,引入Demo26.vue并进行渲染:

html 复制代码
<script setup>
import Demo from "./components/Demo26.vue"
</script>
<template>
  <h1>欢迎跟着Python私教一起学习Vue3入门课程</h1>
  <hr>
  <Demo/>
</template>

然后,我们浏览器访问:http://localhost:5173/

完整代码

package.json

json 复制代码
{
  "name": "hello",
  "private": true,
  "version": "0.1.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build"
  },
  "dependencies": {
    "vue": "^3.3.8"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.5.0",
    "vite": "^5.0.0"
  }
}

vite.config.js

js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
})

index.html

html 复制代码
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vite + Vue</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

src/main.js

js 复制代码
import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

src/App.vue

html 复制代码
<script setup>
import Demo from "./components/Demo26.vue"
</script>
<template>
  <h1>欢迎跟着Python私教一起学习Vue3入门课程</h1>
  <hr>
  <Demo/>
</template>

src/components/Demo26.vue

html 复制代码
<script setup>
import {computed} from "vue";

const student={
  name:"张三",
  province:"四川",
  city:"成都"
}

// 使用计算属性计算用户的位置
const position=computed(()=>{
  return `${student.province}/${student.city}`
})
</script>
<template>
  <div>
    <h3>姓名:{{student.name}}</h3>
    <h3>位置:{{ position}}</h3>
  </div>
</template>

启动方式

bash 复制代码
yarn
yarn dev

浏览器访问:http://localhost:5173/

相关推荐
程序猿_极客几秒前
【期末网页设计作业】HTML+CSS+JavaScript 猫咪主题网站开发(附源码与效果演示)
前端·css·html·课程设计·网页设计作业
IT古董几秒前
【前端】从零开始搭建现代前端框架:React 19、Vite、Tailwind CSS、ShadCN UI 完整实战教程-第1章:项目概述与技术栈介绍
前端·react.js·前端框架
有点笨的蛋2 分钟前
从零搭建小程序首页:新手也能看懂的结构解析与实战指南
前端·微信小程序
爱宇阳3 分钟前
Vue3 前端项目 Docker 容器化部署教程
前端·docker·容器
Irene19913 分钟前
前端缓存技术和使用场景
前端·缓存
BetterChinglish12 分钟前
html5中canvas图形变换transform、setTransform原理(变换矩阵)
javascript·html5·canvas·变换矩阵
是你的小橘呀21 分钟前
深入解析 JavaScript 引擎与作用域机制
前端·javascript
huangql52037 分钟前
前端身份识别与灰度发布完整指南
前端
风止何安啊1 小时前
深入 V8 引擎:JavaScript 执行机制与作用域模型的底层逻辑解析
javascript
你算哪颗溜溜梅1 小时前
uni.scanCode vs MpaasScan:支付宝扫码识别赢麻了,保姆级教程来咯~
javascript·uni-app