诚城的成长 诚城的成长
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)

诚城

我有N个梦想……
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)
  • start
  • pinia

  • router
  • setup
  • solt
  • computed
    • 两种书写方式
  • component.md

  • map
  • vue3
诚城
2022-04-15
目录

computed原创

computed 依赖的数学的值发生变化的时候触发;如果依赖的值未变化,则使用缓存中的值。
相关视频 (opens new window)

# 两种书写方式

<template>
  <view class="content">
    <input class="border border-blue-500" v-model="aaa" type="text" />
    <input class="border border-green-500" v-model="bbb" type="text" />
    <view>{{ name }}</view>
    <view></view>
  </view>
</template>

<script setup lang="ts">
import { ref, computed } from 'vue'
// let 定义变量  const 定义常量
const aaa = ref('') // setup 中必须使用 ref 相关操作
const bbb = ref('')

// computed 第一种书写方式
const name = computed(() => {
  // 依赖的属性 aaa bbb 只要其中任一一个值发生变动都会触发
  return aaa.value + '---' + bbb.value // 使用 ref 必须用 value 来获取值,不想使用 value 请使用 toRefs
})

// 第二种书写
// const name = computed({
//   get() {
//     return aaa.value + '+++' + bbb.value
//   },
//   set() {
//     // eslint-disable-next-line no-unused-expressions
//     aaa.value + '+++' + bbb.value
//   }
// })
</script>

对于对象的操作,删除可使用 splice() , 更新可使用 reduce() 2个函数。

<script setup lang="ts">
import { ref, computed, reactive } from 'vue'
// ts 定义类型
type shop = {
  name: string,
  num: number,
  price: number
}
let total = ref(0)
// reactive 重新赋值
const data = reactive<shop[]>([
  {
    name: '物品1',
    num: 1,
    price: 200
  },
  {
    name: '物品2',
    num: 1,
    price: 202
  },
  {
    name: '物品3',
    num: 1,
    price: 203
  }
])
const del = (index: number) => {
  // 给『数组』删除或添加元素 array.splice(index,howmany,item)
  // index 必须是数字,必需参数,从对象的第几个下标开始删除或添加元素
  // howmany 必须是数字,可选参数,可以是 0 ,规定应该删除多少个元素
  // item 可选参数,要添加到数组的新元素
  data.splice(index, 1)
}
// data 数据有变动时触发
total = computed<number>(() => {
  // reduce 作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
  // array.reduce(total,currentValue,currentIndex,arr)
  // total 必需。初始值, 或者计算结束后的返回值。
  // currentValue 必需。当前元素
  // currentIndex 可选。当前元素的索引
  // arr 可选。当前元素所属的数组对象。
  return data.reduce((prev, next) => { // (prev, next)这里应该有4个参数的
    // prev 是上一次的值,首次渲染时为 currentValue
    // next 是 data 里面的每一个对象
    return prev + (next.num * next.price)
  }, 0) // currentValue 为 0
})
</script>
上次更新: 2022/08/23, 18:12:45
solt
组件基础

← solt 组件基础→

Theme by Vdoing | Copyright © 2022-2022 carveybunt | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×

特别申明:

本站所有内容均为个人理解或转载,如有不当之处,敬请大佬指导!