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

网站技术培训急切网在线制作

网站技术培训,急切网在线制作,做家教网站资质,山东众德建设项目管理公司网站目录 响应式数据管理1. toRef 和 torefs2. shallowRef 和 shallowReactive3. markRaw 依赖追踪与副作用1. computed2. watch 和 watchEffect 类型判断与优化1. unref2. isRef 、isReactive 和 isProxy 组件通信与生命周期1. provide 和 inject2. nextTick 高级工具1. useAttrs …

目录

  • 响应式数据管理
    • 1. toRef 和 torefs
    • 2. shallowRef 和 shallowReactive
    • 3. markRaw
  • 依赖追踪与副作用
    • 1. computed
    • 2. watch 和 watchEffect
  • 类型判断与优化
    • 1. unref
    • 2. isRef 、isReactive 和 isProxy
  • 组件通信与生命周期
    • 1. provide 和 inject
    • 2. nextTick
  • 高级工具
    • 1. useAttrs 和 useSlots

响应式数据管理

1. toRef 和 torefs

作用: 将响应式对象的属性转换为 ref,保持解构后的响应性
场景: 解构 reactive 对象时避免丢失响应性
示例:

import { reactive, toRef, toRefs } from 'vue';const state = reactive({ x: 1, y: 2 });// 解构单个属性
const xRef = toRef(state, 'x');  // xRef.value 始终同步 state.x// 解构所有属性
const { y } = toRefs(state); // y.value 同步 state.y

2. shallowRef 和 shallowReactive

作用: 创建浅层响应式数据(只跟踪顶层的属性变化)。
场景: 优化性能,避免深度监听大对象
示例:

const shallowState = shallowReactive({nested: { data : 'value' }  // 修改 nested.data 不会触发响应式更新
})const shallowCount = shallowRef({ value : 0 });
shallowCount.value.value = 1; // 不会触发响应式更新

3. markRaw

作用: 标记对象为 “ 非响应式 ”,避免被 Vue 转换为代理。
场景: 处理第三方库对象或性能敏感数据。
示例:

const rawObject = markRaw({ data : 'static' });
const state = reactive({ rawObject }); // rawObject 不会被代理

依赖追踪与副作用

1. computed

作用: 创建依赖其他响应式数据的计算属性。
场景: 缓存复杂计算结果,避免重复计算
示例:

const count = ref(0);
const doubled = computed(()=> count.value * 2);console.log(doubled.value);  // count 变化后自动更新

2. watch 和 watchEffect

作用: 监听数据变化并执行副作用

  • watch: 显式指定监听目标
  • watchEffect: 自动追踪依赖

示例:

const count = ref(0);// 监听 count 变化
watch(count, (newVal, oldVal)=>{console.log(`Count changed from ${oldVal} to ${newVal}`)
});// 自动追踪依赖
watchEffect(() => {console.log(`Count is ${count.value}`);
})

类型判断与优化

1. unref

作用: 快速获取 ref 的值(如果是 ref 返回 .value,否则返回原值)。
场景: 简化 ref 和普通值的混合处理
示例:

const x = ref(10);
const rawValue = 20;console.log(unref(x));    // 10 不用x.value
console.log(unref(rawValue)); // 20

2. isRef 、isReactive 和 isProxy

作用: 判断变量类型

  • isRef(value): 是否为 ref 对象
  • isReactive(value): 是否为 reactive 创建的响应式对象
  • isProxy(value): 是否为 reactive 或 readonly 代理

示例:

const count = ref(0);
const state = reactive({ x: 1 });console.log(isRef(count));      // true
console.log(isReactive(state)); // true
console.log(isProxy(state));    // true

组件通信与生命周期

1. provide 和 inject

作用: 跨层级组件传递数据
场景: 避免逐层传递 props
示例:

// 父组件
import { provide } from 'vue';
provide('theme', 'dark');// 子组件
import { inject } from 'vue';
const theme = inject('theme', 'light'); // 默认值 'light'

2. nextTick

作用: 在 DOM 更新后执行回调
场景: 操作更新后的 DOM 元素
示例:

import { nextTick } from 'vue';const updateData = async () => {data.value = 'new value';await nextTick();console.log('DOM 已更新');
}

高级工具

1. useAttrs 和 useSlots

作用: 在 script setup 中访问组件的 attrs 和 slots
场景: 处理未声明为 props 的属性或动态插槽
示例:

<script setup>
import { useAttrs, useSlots } from 'vue';const arrts = useAttrs();  // 获取所有非 props 属性
const slots = useSlots();  // 获取插槽内容
<script> 

总结:合理使用这些工具,可以大幅度提升代码的简洁性和可维护性,同时避免常见的响应式陷阱

http://www.dtcms.com/wzjs/791400.html

相关文章:

  • 企业网站策划实训昆山优化外包
  • 用wordpress建立导航网站博罗做网站报价
  • 病理学系列教材的建设与实践 教学成果奖申报网站查询网站dns服务器
  • 电商网站 制作营销方案餐饮
  • 棕色网站设计wordpress google 360
  • 怎么做网站优化 sit公司部门网站设计模板
  • 大数据网站开发工程师三只羊网络科技有限公司
  • 做网站项目计划书wordpress在阿里云里安装
  • vue.js网站建设资阳公司网站建设
  • 中学生网站制作长春市网站制作公司
  • 网站建设要懂哪些技术在什么网站可以做外贸出口劳保鞋
  • 管网建设网站wordpress做什么
  • 重庆网站建设狐灵传媒兰甘肃网站建设
  • 个人网站可以做什么一个设计公司的简介
  • 公司网站建设宣传做宣传 为什么要做网站那
  • 网站备案几天wordpress相对链接改成绝对链接
  • 做网站怎么存放视频产品线上营销推广方案
  • 中山网站建设哪家强自己做的网站怎么改电话
  • 个人工作室网站设计网站域名怎么申请
  • 建设山东公司网站网站建设移交确认书
  • 汉台网站制作软件项目管理案例教程第四版答案
  • 兰州网站seo哪家公司好新乡市做网站找哪个公司
  • python网站开发快吗泰州做兼职的网站
  • 一元购网站怎么做宣传海报制作
  • 在线免费解答网站怎么建做紧固件上什么网站
  • 哪里有做网站的公司网站 扁平化
  • H5建网站制作ppt的网站
  • wordpress设置新页面郑州网站优化方案
  • 手机wap网站 分页手机端怎么看世界杯
  • 企业建立一个网站如何租用域名中国能建平台