首页 > 其他分享 >Vue3——computed计算属性

Vue3——computed计算属性

时间:2024-06-13 23:54:50浏览次数:21  
标签:computed xing name Vue3 value ming 10px 属性

computed计算属性的作用

computed作用:根据以有数据计算出新数据(和vue2computed的作用一样)

特点

  1. 只要值一改变,就重新计算,如果没变,则使用缓存中计算出来的值
  2. 与函数作对比,在模板中多次使用,计算属性的只会执行一次,有缓存。而函数会执行多次,无缓存。

俩种使用方式

  • computed计算属性只读取,不修改
  • computed计算属性既读取又修改

computed计算属性只读取,不修改


运行结果

代码

  <template>
    <div class="root">
      姓:<input type="text" v-model="xing"><br>
      名:<input type="text" v-model="ming"><br>
      姓名:<span>{{ name }}</span><br>
      姓名:<span>{{ name }}</span><br>
      姓名:<span>{{ name }}</span><br>
      姓名:<span>{{ name }}</span><br>

      姓名:<span>{{ getName() }}</span><br>
      姓名:<span>{{ getName() }}</span><br>
      姓名:<span>{{ getName() }}</span><br>
      姓名:<span>{{ getName() }}</span><br>
    </div>
  </template>

<!--Vue 3 setup语法糖 -->
<script setup lang='ts' name="App">
import { computed, ref } from 'vue';

let xing = ref("");
let ming = ref("");

//computed计算属性只读取,不修改
/*
特点:
    1.只有xing和ming一改变,就重新计算
    2.在模板中多次使用,也只会执行一次,是有缓存的。如果是使用函数来实现,则会执行多次函数
*/
let name = computed(() => {
  console.log("computed()执行了。。。");

  return xing.value + "\t" + ming.value;
})

function getName() {
  console.log("getName()函数执行了。。。");
  return xing.value + "\t" + ming.value;
}
</script>

<style scoped>
.root {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

.roles {
  background-color: rgb(211, 216, 218);
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

h2 {
  width: 1000px;
}

button {
  margin: 0 5px;
}

div {
  margin: 10px;
}
</style>

computed计算属性既读取又修改


运行结果

代码

  <template>
    <div class="root">
      姓:<input type="text" v-model="xing"><br>
      名:<input type="text" v-model="ming"><br>
      姓名:<span>{{ name }}</span><br>
      <button @click="changeName">更改姓名name</button>
    </div>
  </template>

<!--Vue 3 setup语法糖 -->
<script setup lang='ts' name="App">
import { computed, ref } from 'vue';

let xing = ref("");
let ming = ref("");

//computed计算属性既读取,又修改

let name = computed({
  //读取
  get() {
    return xing.value + "\t" + ming.value;
  },
  //修改
  set(val) {
    console.log("值被修改了。。。");
    ming.value = val.split("\t")[0];
    xing.value = val.split("\t")[1];
  }

})

function changeName() {
  name.value = "么" + "\t" + "么";
}
</script>

<style scoped>
.root {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

.roles {
  background-color: rgb(211, 216, 218);
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

h2 {
  width: 1000px;
}

button {
  margin: 0 5px;
}

div {
  margin: 10px;
}
</style>

标签:computed,xing,name,Vue3,value,ming,10px,属性
From: https://www.cnblogs.com/me-me/p/18246900

相关文章

  • 蓝牙BLE上位机工具开发理论线索梳理_1.Win32设备(Windows 属性系统)
    1.Windows属性系统     Windows属性系统是一个可扩展的数据定义读/写系统,它提供一种统一的方式来表达有关Shell项的元数据。WindowsVista及更高版本中的Windows属性系统使你能够存储和检索Shell项的元数据。Shell项是任何单个内容,例如文件、文件夹、电......
  • 过渡属性transition
    *transition这个属性添加在谁的身上就在谁的身上发生变化!!!注意:不要加在hover上!!!*例如:在box盒子上就在box盒子上变化1、瞬间变长,看不到过程<!DOCTYPEhtml><!--文档类型--><htmllang="en"> <head> <metacharset="utf-8"> <metaname="viewport"c......
  • 基于jeecgboot-vue3的Flowable流程-流程处理(一)
    因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。这部分修正一些流程处理中VForm3线上的一些bug问题1、初始化流程提交与现实的前端页面代码<!--初始化流程加载默认VForm3表单信息--><el-col:span="16":offset="4"v-if="formConfOpen">......
  • vue3实现在移动端时用卡片展示数据而在PC端时切换为表格展示数据
    1、根据屏幕宽度自动切换卡片和表格来展示数据2、PC端用pagination分页,移动端用v-infinite-scroll滚动分页3、准备封装成一个组件......<template><div><divv-if="isMobile"class="infinite-list"style="overflow:auto"v-infinite-scroll="loadMore&q......
  • 界面控件DevExpress WinForms垂直&属性网格组件 - 拥有更灵活的UI选择(一)
    DevExpressWinForms垂直&属性网格组件旨在提供UI灵活性,它允许用户显示数据集中的单个行或在其90度倒置网格容器中显示多行数据集。另外,用户可以把它用作一个属性网格,就像在VisualStudioIDE中那样。P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有......
  • vue3 动态路由生成
    动态路由生成----vue3stores/index.jsimport{defineStore}from'pinia';exportconstuseRouteStore=defineStore('route',{state:()=>({dynamicRoutes:false})});router/index.jsimport{createRouter,createWebHistory}fr......
  • vite+vue3展示文件夹内的所有组件
    https://www.cnblogs.com/y-shmily/p/16546743.html 在组件目录下新建index.jsimport{markRaw}from"vue";constfilesNameList=[];constfiles=import.meta.glob("./*.vue");for(constkeyinfiles){constfileName=key.replace(/(\.......
  • Vue在表单校验中trigger属性指定何时触发校验规则
    Vue在表单校验中trigger属性指定何时触发校验规则一、前言1.示例代码一、前言在表单校验中,trigger属性用于指定何时触发校验规则。常见的触发方式包括"change"和"blur".它们的区别如下:trigger:"change":触发时机:当表单控件的值发生变化时触发校验。应用......
  • BGP路由优选实验(包含as策略,Community属性等)
    实验背景实验目的1.使用AS_PATH属性,确保R4通过R3到达192.168.11.0/242.使用LOCAL_PREF属性,确保R1通过R2到达192.168.1.0/243.使用MED属性,确认R4通过R3到达192.168.12.0/244.使用LOCAL_PREF属性,确保R1通过R3到达192.168.2.0/245.使用AS策略,AS500不接受任何始发于AS1......
  • Unity Camera组件ClearFlags属性介绍以及区分UI摄像机和角色摄像机
    在Unity中,Camera.clearFlags属性用于定义相机在渲染场景之前如何清除屏幕。这个属性有几个不同的选项,每个选项都会以不同的方式清除屏幕。具体选项如下:Skybox:如果相机有分配的天空盒(Skybox),在渲染场景之前将用天空盒来清除屏幕。如果没有分配天空盒,则使用纯色来清除屏幕,颜色......