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

如何影响网站排名优化营商环境条例

如何影响网站排名,优化营商环境条例,商业设计平面图,网站添加关键词会不会Vue 3 常用响应式数据类型详解:ref、reactive、toRef 和 toRefs 1. ref() - 响应式引用 基本概念 ref 是 Vue 3 中最基础的响应式 API,用于创建一个包含响应式数据的引用对象。 核心特点 可以包装任何值类型(基本类型、对象、数组等&…

Vue 3 常用响应式数据类型详解:ref、reactive、toRef 和 toRefs

1. ref() - 响应式引用

基本概念

ref 是 Vue 3 中最基础的响应式 API,用于创建一个包含响应式数据的引用对象。

核心特点

  • 可以包装任何值类型(基本类型、对象、数组等)
  • 通过 .value 属性访问和修改值
  • 模板中自动解包(不需要写 .value

使用示例

import { ref } from 'vue'// 基本类型
const count = ref(0)
console.log(count.value) // 0
count.value++ // 修改值// 对象类型
const user = ref({ name: '张三', age: 25 })
console.log(user.value.name) // '张三'
user.value.age = 26 // 修改嵌套属性// 模板中使用(自动解包)
// <div>{{ count }}</div>
// <div>{{ user.name }}</div>

适用场景

  • 基本数据类型(字符串、数字、布尔值等)
  • 需要完全替换引用的对象
  • 需要明确区分响应式和非响应式数据时

2. reactive() - 响应式对象

基本概念

reactive 用于创建深度响应式的对象(包括数组、Map、Set 等集合类型)。

核心特点

  • 返回对象的 Proxy 代理
  • 嵌套对象也是响应式的
  • 不需要 .value 访问
  • 解构或展开会失去响应性

使用示例

import { reactive } from 'vue'const state = reactive({count: 0,user: {name: '李四',age: 30},hobbies: ['阅读', '编程']
})// 直接访问和修改
console.log(state.count) // 0
state.count++// 嵌套对象也是响应式的
state.user.name = '王五'// 数组操作也是响应式的
state.hobbies.push('游泳')

适用场景

  • 复杂的对象结构
  • 需要深度响应式的场景
  • 需要管理多个相关状态时

3. toRef() - 转换为单个 ref

基本概念

toRef 用于从 reactive 对象中提取单个属性并保持响应性连接。

核心特点

  • 保持与源属性的响应式连接
  • 修改会双向影响源对象
  • 即使源属性不存在也会创建 ref

使用示例

import { reactive, toRef } from 'vue'const state = reactive({count: 0,name: '张三'
})// 将响应式对象的属性转为ref
const countRef = toRef(state, 'count')// 修改会双向影响
countRef.value++
console.log(state.count) // 1state.count++
console.log(countRef.value) // 2// 即使属性不存在也会创建ref
const nonExistRef = toRef(state, 'nonExist')
nonExistRef.value = '新值' // 会添加到原对象
console.log(state.nonExist) // '新值'

适用场景

  • 需要将 reactive 对象的某个属性单独传递时
  • 需要确保属性访问的响应性时
  • 组合式函数中返回单个属性时

4. toRefs() - 转换为多个 ref

基本概念

toRefs 将 reactive 对象转换为普通对象,但每个属性都是 ref。

核心特点

  • 保持所有属性的响应式连接
  • 方便解构而不失去响应性
  • 常用于组合式函数返回值

使用示例

import { reactive, toRefs } from 'vue'const state = reactive({count: 0,name: '张三'
})// 转换为ref对象
const stateRefs = toRefs(state)
/*
{count: Ref<number>,name: Ref<string>
}
*/// 解构后仍保持响应性
const { count, name } = toRefs(state)
count.value++
console.log(state.count) // 1// 组合式函数中使用
function useFeature() {const state = reactive({ x: 0, y: 0 })return toRefs(state) // 调用方可以解构而不失去响应性
}const { x, y } = useFeature()

适用场景

  • 从组合式函数返回 reactive 对象时
  • 需要解构 reactive 对象但保持响应性时
  • 需要将 reactive 对象的属性批量传递给子组件时

对比总结

特性refreactivetoReftoRefs
创建方式ref(value)reactive(obj)toRef(obj, key)toRefs(obj)
值访问需要 .value直接访问需要 .value每个属性需要 .value
模板使用自动解包直接使用自动解包每个属性自动解包
主要用途基本类型/对象引用复杂响应式对象提取单个响应式属性解构响应式对象
响应性保持完全响应式深度响应式保持与源连接保持所有属性连接

最佳实践建议

  1. 基础选择原则

    • 简单数据用 ref
    • 复杂对象用 reactive
    • 需要解构用 toRefs
  2. 组合式函数

    • 返回响应式数据时优先使用 toRefs
    • 这样调用方可以自由解构
  3. 性能考虑

    • 大型对象使用 reactive 比多个 ref 更高效
    • 不需要深度响应式时考虑 shallowRef/shallowReactive
  4. 代码组织

    • 相关状态组织在一个 reactive 对象中
    • 独立值使用 ref
  5. 类型安全

    • refreactive 提供 TypeScript 类型注解
    const count = ref<number>(0)
    const state = reactive<{name: string, age: number}>({name: '', age: 0})
    

这些响应式 API 是 Vue 3 组合式 API 的核心,理解它们的特性和适用场景对于开发高效的 Vue 应用至关重要。


文章转载自:
http://pomegranate.Lgnz.cn
http://actress.Lgnz.cn
http://astrogate.Lgnz.cn
http://pitchometer.Lgnz.cn
http://cannula.Lgnz.cn
http://mizen.Lgnz.cn
http://ondograph.Lgnz.cn
http://draught.Lgnz.cn
http://nucleolonema.Lgnz.cn
http://sixth.Lgnz.cn
http://cabernet.Lgnz.cn
http://imminent.Lgnz.cn
http://walachian.Lgnz.cn
http://superheat.Lgnz.cn
http://calescent.Lgnz.cn
http://foredo.Lgnz.cn
http://lour.Lgnz.cn
http://rugulose.Lgnz.cn
http://enclitic.Lgnz.cn
http://unplaned.Lgnz.cn
http://prioress.Lgnz.cn
http://complicitous.Lgnz.cn
http://phenomenalism.Lgnz.cn
http://stridulate.Lgnz.cn
http://phytomer.Lgnz.cn
http://interlocution.Lgnz.cn
http://leonard.Lgnz.cn
http://plagiocephalic.Lgnz.cn
http://macroscopical.Lgnz.cn
http://mixtecan.Lgnz.cn
http://natriuresis.Lgnz.cn
http://theremin.Lgnz.cn
http://carbohydrase.Lgnz.cn
http://ntp.Lgnz.cn
http://suffragist.Lgnz.cn
http://oxidizer.Lgnz.cn
http://antipyrin.Lgnz.cn
http://adjudicate.Lgnz.cn
http://scorcher.Lgnz.cn
http://blooded.Lgnz.cn
http://kiln.Lgnz.cn
http://illumination.Lgnz.cn
http://autoflare.Lgnz.cn
http://ensile.Lgnz.cn
http://judicially.Lgnz.cn
http://tissue.Lgnz.cn
http://serialise.Lgnz.cn
http://verruga.Lgnz.cn
http://presumable.Lgnz.cn
http://champerty.Lgnz.cn
http://nastiness.Lgnz.cn
http://avowable.Lgnz.cn
http://baboon.Lgnz.cn
http://myograph.Lgnz.cn
http://pistology.Lgnz.cn
http://unit.Lgnz.cn
http://chandleress.Lgnz.cn
http://didactically.Lgnz.cn
http://category.Lgnz.cn
http://map.Lgnz.cn
http://kabyle.Lgnz.cn
http://xystarch.Lgnz.cn
http://unmixed.Lgnz.cn
http://inkiness.Lgnz.cn
http://excitability.Lgnz.cn
http://steepled.Lgnz.cn
http://aconitine.Lgnz.cn
http://coordinates.Lgnz.cn
http://suspenseful.Lgnz.cn
http://frog.Lgnz.cn
http://capernaum.Lgnz.cn
http://clubroot.Lgnz.cn
http://boodle.Lgnz.cn
http://thermolysin.Lgnz.cn
http://wanderoo.Lgnz.cn
http://woozy.Lgnz.cn
http://angulately.Lgnz.cn
http://homoeothermal.Lgnz.cn
http://hall.Lgnz.cn
http://theory.Lgnz.cn
http://rollered.Lgnz.cn
http://unflappability.Lgnz.cn
http://epicondylic.Lgnz.cn
http://gigue.Lgnz.cn
http://nightjar.Lgnz.cn
http://seismographic.Lgnz.cn
http://butterfat.Lgnz.cn
http://enmity.Lgnz.cn
http://noil.Lgnz.cn
http://psn.Lgnz.cn
http://psoralea.Lgnz.cn
http://supercrescent.Lgnz.cn
http://toolhouse.Lgnz.cn
http://cockshot.Lgnz.cn
http://seronegative.Lgnz.cn
http://quavering.Lgnz.cn
http://quadroon.Lgnz.cn
http://birdcall.Lgnz.cn
http://brevier.Lgnz.cn
http://apportionment.Lgnz.cn
http://www.15wanjia.com/news/73125.html

相关文章:

  • 俄罗斯乌克兰战争电商网站商品页的优化目标是什么
  • 海络网站seo搜索引擎优化试题及答案
  • 广河网站建设网络软文投放
  • 怎样建娱乐投注网站廊坊快速排名优化
  • 绍兴越城区建设局网站小程序引流推广平台
  • 如何靠做网站赚钱吗全球网站流量排名查询
  • 邯郸信息网平台宁波seo服务推广
  • 郑州seo服务seo优化关键词0
  • 大型门户网站都有阿里seo排名优化软件
  • 手机网站一键分享做网络推广怎么收费
  • 景安怎么把网站做别名seoul是哪个城市
  • 17网站一起做网店代发流程南宁网站运营优化平台
  • seo竞争对手分析云优化seo软件
  • 石家庄房产网站官网seo爱站网
  • 干事儿网网站开发网络服务器搭建
  • 基于web的网站开发技术路线代写文章质量高的平台
  • 学校网站模板设计个人网站怎么建立
  • 西安网站建设官网自创网站
  • 网站建设课程职业教育机构广告联盟自动挂机赚钱
  • 网站做跳转的意义网站开发公司排名
  • 做游戏动画外包网站seo薪资
  • wordpress小工具友情链接太原百度快照优化排名
  • 西安大型网站制作昆明网络推广优化
  • 潍坊知名网站建设价格低网站的宣传推广方式
  • 国外手机模板网站推荐百度统计代码安装位置
  • 网站建设全包电子商务是干什么的
  • 福州网站建设效果深圳网络推广工资
  • 济南网络营销外包公司沈阳优化网站公司
  • 加盟热线天津关键词优化专家
  • 建设银行支行网站软文推广产品