• 常用 的 Vue3 新增方法及用法


    Vue3 相较于 Vue2 新增了很多方法,以下列举几个常用的方法及用法:

    1. ref:用于创建响应式的数据对象,可以在模板和逻辑中使用:
    1. import { ref, reactive } from 'vue'
    2. // 创建响应式数据
    3. const count = ref(0)
    4. // 使用响应式数据
    5. console.log(count.value) // 输出 0
    6. const obj = reactive({ name: 'vue3' })
    7. obj.name = 'vue3.x'
    8. console.log(obj.name) // 输出 vue3.x

    1. computed:用于创建计算属性,可以是一个函数或者一个包含 getset 函数的对象:
    1. import { ref, computed } from 'vue'
    2. const count = ref(0)
    3. // 创建计算属性,依赖 count 值,返回 count 的平方
    4. const countSquare = computed(() => count.value * count.value)
    5. console.log(countSquare.value) // 输出 0
    6. count.value = 2
    7. console.log(countSquare.value) // 输出 4

    1. watchEffect:用于监听响应式数据变化并执行回调函数,自动收集依赖:
    1. import { ref, watchEffect } from 'vue'
    2. const count = ref(0)
    3. // 监听 count 值变化,并在每次变化时执行回调函数
    4. watchEffect(() => {
    5. console.log(count.value)
    6. })
    7. count.value = 1 // 输出 1
    8. count.value = 2 // 输出 2

    1. watch:用于监听指定的响应式数据变化并执行回调函数:
    1. import { ref, watch } from 'vue'
    2. const count = ref(0)
    3. // 监听 count 值变化,并在每次变化时执行回调函数
    4. watch(count, (newValue, oldValue) => {
    5. console.log(`count 值从 ${oldValue} 变成了 ${newValue}`)
    6. })
    7. count.value = 1 // 输出 count 值从 0 变成了 1
    8. count.value = 2 // 输出 count 值从 1 变成了 2

    1. provide / inject:用于实现组件之间的依赖注入,类似于 React 中的 Context:
    1. import { provide, inject } from 'vue'
    2. // 在父组件中提供数据
    3. const provideData = {
    4. name: 'vue3'
    5. }
    6. provide('data', provideData)
    7. // 在子组件中使用提供的数据
    8. const childData = inject('data')
    9. console.log(childData.name) // 输出 vue3

  • 相关阅读:
    第三次pta认证P测试C++
    vernemq 一个可用的入门指南之一:Mac下的安装及使用,使用MQTTX访问verneMQ
    SpringBoot整合Redis缓存-JedisPool使用
    图的连通性基础
    时序电路的Verilog设计——基本时序元件
    软考信息安全工程师案列分析
    通过多线程处理提高Redis性能
    MFC 绘图
    PixCake:让你的照片焕发新生的AI人像处理技术修图软件
    Exposure Normalization and Compensation for Multiple-Exposure Correction 论文阅读笔记
  • 原文地址:https://blog.csdn.net/qq_70036866/article/details/133067679