当前位置: 首页 > wzjs >正文

企业做网站认证有哪些好处在线培训系统

企业做网站认证有哪些好处,在线培训系统,淘宝开店需要多少钱,建设局跟住建局一样吗Vue 3的两位"响应式英雄":Reactive与Ref的故事 基本介绍:响应式的两种武器 Vue 3提供了两种创建响应式数据的主要API:reactive()和ref()。它们像两种不同的魔法工具,各有所长,共同构建Vue的响应式王国。 ┌────────────────────────…

Vue 3的两位"响应式英雄":Reactive与Ref的故事

基本介绍:响应式的两种武器

Vue 3提供了两种创建响应式数据的主要API:reactive()ref()。它们像两种不同的魔法工具,各有所长,共同构建Vue的响应式王国。

┌─────────────────────────────────────────────────────────┐
│                  Vue 3 响应式API对比                    │
├───────────────────┬─────────────────┬───────────────────┤
│      特性         │    reactive     │       ref         │
├───────────────────┼─────────────────┼───────────────────┤
│ 适用数据类型      │ 对象类型        │ 任何类型          │
├───────────────────┼─────────────────┼───────────────────┤
│ 访问/修改方式     │ 直接属性访问    │ .value属性        │
├───────────────────┼─────────────────┼───────────────────┤
│ 内部实现          │ Proxy           │ 包装对象+Proxy    │
├───────────────────┼─────────────────┼───────────────────┤
│ 解构后保持响应性  │     ❌          │      ✅           │
└───────────────────┴─────────────────┴───────────────────┘

生活类比:魔法容器与魔法盒子

🏰 想象一个奇幻世界的故事:

  • reactive()是一座"魔法城堡"

    • 城堡里的每个房间都被施了魔法(对象的每个属性都是响应式的)
    • 你可以直接进入任何房间(直接访问对象属性)
    • 但是,如果你试图把房间拆下来带走(解构属性),魔法就会消失
    • 只有完整的建筑物才能保持魔法(整个对象才有响应性)
  • ref()是一个"魔法盒子"

    • 盒子可以装任何东西(原始值或对象)
    • 必须打开盒子才能看到里面的东西(通过.value访问)
    • 盒子本身带着魔法标记,无论放在哪里都能被追踪(引用传递保持响应性)
    • 即使从大包裹中取出来(从对象解构),盒子仍然保持魔法效果

1. Reactive:对象的响应式转换器

reactive()将一个普通对象转换为响应式对象,使用ES6的Proxy实现深层响应式,适用于复杂数据结构。

实现流程

┌──────────────────────┐
│  调用reactive(obj)   │
└──────────┬───────────┘│▼
┌──────────────────────┐          ┌───────────────────┐
│ 检查obj是否为对象    │──否──────▶│ 返回原始值        │
└──────────┬───────────┘          └───────────────────┘│是▼
┌──────────────────────┐          ┌───────────────────┐
│ 检查缓存中是否已存在 │──是──────▶│ 返回现有响应式对象 │
└──────────┬───────────┘          └───────────────────┘│否▼
┌──────────────────────┐
│ 创建Proxy包装对象    │
└──────────┬───────────┘│▼
┌──────────────────────┐
│处理getter/setter拦截 │
└──────────┬───────────┘│▼
┌──────────────────────┐
│在getter中收集依赖    │
└──────────┬───────────┘│▼
┌──────────────────────┐
│在setter中触发更新    │
└──────────┬───────────┘│▼
┌──────────────────────┐
│ 返回Proxy对象        │
└──────────────────────┘

代码示例

import { reactive, watchEffect } from 'vue'// 创建响应式对象
const user = reactive({name: '张三',age: 30,address: {city: '北京',district: '朝阳区'}
})// 直接访问和修改
console.log(user.name) // 输出: 张三
user.age = 31 // 直接修改,会触发更新// 监听响应式变化
watchEffect(() => {console.log(`${user.name}今年${user.age}岁,住在${user.address.city}`)
})// 深层嵌套属性也是响应式的
user.address.city = '上海' // 会触发上面的watchEffect重新执行// 🚫 解构后会失去响应性
const { name, age } = user
console.log(name) // 张三
// 修改解构出的变量不会触发更新
age = 32 // watchEffect不会重新执行

2. Ref:任意值的响应式包装器

ref()可以将任何类型的值(包括原始类型)包装成响应式对象,通过.value访问和修改内部值,在模板中会自动解包。

实现流程

┌──────────────────────┐
│    调用ref(value)    │
└──────────┬───────────┘│▼
┌──────────────────────┐
│  创建RefImpl对象     │
└──────────┬───────────┘│▼
┌──────────────────────┐
│内部维护_value属性    │
└──────────┬───────────┘│▼
┌──────────────────────┐        ┌───────────────────────┐
│value是对象吗?        │──是───▶│将value转换为reactive   │
└──────────┬───────────┘        └───────────────────────┘│否▼
┌──────────────────────┐
│定义value的getter/    │
│setter进行依赖收集    │
└──────────┬───────────┘│▼
┌──────────────────────┐
│返回包含.value的对象  │
└──────────────────────┘

代码示例

import { ref, watchEffect } from 'vue'// 创建基本类型的响应式引用
const count = ref(0)
const message = ref('Hello')
const isActive = ref(true)// 必须通过.value访问和修改
console.log(count.value) // 输出: 0
count.value++ // 通过.value修改// 对象类型也可以使用ref
const user 
http://www.dtcms.com/wzjs/177694.html

相关文章:

  • 公司网页制作流程图厦门seo公司到1火星
  • 网站建设与推广推荐谷歌浏览器搜索入口
  • 泰安市住房和城乡建设部网站免费网站java源码大全
  • 仿牌网站容易被攻击吗2024很有可能再次封城吗
  • 关于单位网站建设的报告搭建网站基本步骤
  • 山西太原做企业网站建设的公司网站推广是干嘛的
  • 网站备案号官网南京疫情最新情况
  • 3d动画制作视频教程免费seo工具汇总
  • 九江网站建设张旭四川网络推广推广机构
  • 微网站是自己做可以不网络营销的手段包括
  • 网站开发是否属于无形资产seo的培训网站哪里好
  • 老外做的汉语网站谷歌收录提交入口
  • 七台河新闻联播最新重庆seo优
  • 上海web网站开发百度竞价排名多少钱
  • 站群 网站如何做房地产新闻最新消息
  • 国家对网站建设的要求平台营销策略
  • 响应式 html5 css3 网站模板百度关键词搜索量查询
  • 电商网站建设规划书上海品牌推广公司
  • 平面设计用什么软件最好广州谷歌seo公司
  • .com网站制作google seo怎么做
  • 至高建设集团 网站无锡seo优化
  • 动态网站欣赏免费发广告的平台
  • 政府的网站应该怎么做域名注册新网
  • 网站建设 成本分析长沙谷歌优化
  • 腾讯有服务器如何做网站北京网站营销seo方案
  • 发卡网站建设网络seo是什么意思
  • 临沂网站建设哪家最好留号码的广告网站不需要验证码
  • 网站上怎么做动画广告甘肃seo技术
  • 西安信息网站建设搜索引擎seo外包
  • 大庆公司做网站百度软文