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

如何制作响应式网站网站建设费应开具互联网信息服务吗

如何制作响应式网站,网站建设费应开具互联网信息服务吗,宁波seo网络推广外包报价,php论坛网站建设教程Vue 3 的生命周期与 Vue 2 相比有以下核心区别,主要体现在 钩子函数命名、组合式 API 和 新增功能 上。以下是详细对比和示例说明:1. 生命周期钩子名称变化Vue 3 对部分生命周期钩子进行了重命名,以保持命名一致性(添加 on 前缀&a…

Vue 3 的生命周期与 Vue 2 相比有以下核心区别,主要体现在 钩子函数命名组合式 API新增功能 上。以下是详细对比和示例说明:


1. 生命周期钩子名称变化

Vue 3 对部分生命周期钩子进行了重命名,以保持命名一致性(添加 on 前缀),并适配组合式 API:

Vue 2Vue 3说明
beforeCreate无(由 setup 替代)setup 函数已包含其逻辑
created无(由 setup 替代)setup 函数已包含其逻辑
beforeMountonBeforeMount组件挂载前触发
mountedonMounted组件挂载后触发
beforeUpdateonBeforeUpdate数据更新前触发
updatedonUpdated数据更新后触发
beforeDestroyonBeforeUnmount组件卸载前触发
destroyedonUnmounted组件卸载后触发
activatedonActivated<keep-alive> 缓存组件激活时触发
deactivatedonDeactivated<keep-alive> 缓存组件停用时触发
errorCapturedonErrorCaptured捕获子组件错误时触发

2. 组合式 API 的引入

Vue 3 引入了 组合式 API(Composition API),通过 setup() 函数替代 Vue 2 的 beforeCreatecreated 钩子。组合式 API 提供了更灵活的代码组织方式,尤其适合逻辑复用。

Vue 2 示例(选项式 API)
export default {data() {return { count: 0 };},created() {console.log('created');},mounted() {console.log('mounted');}
};
Vue 3 示例(组合式 API)
import { ref, onMounted } from 'vue';export default {setup() {const count = ref(0);console.log('setup'); // 替代 Vue 2 的 created/beforeCreateonMounted(() => {console.log('mounted');});return { count };}
};

3. 新增调试钩子

Vue 3 新增了两个调试钩子,用于追踪响应式依赖和渲染触发:

  • onRenderTracked:当渲染函数追踪到响应式依赖时触发。
  • onRenderTriggered:当响应式依赖触发重新渲染时触发。
示例
import { onRenderTracked, onRenderTriggered } from 'vue';export default {setup() {onRenderTracked((event) => {console.log('追踪依赖:', event.key); // 打印被追踪的响应式属性});onRenderTriggered((event) => {console.log('触发更新:', event.key); // 打印触发更新的响应式属性});}
};

4. 执行顺序变化(父子组件)

在父子组件的生命周期执行顺序上,Vue 3 与 Vue 2 有差异:

Vue 2 的执行顺序
父 created → 子 created → 子 mounted → 父 mounted
Vue 3 的执行顺序
父 setup → 子 setup → 父 onBeforeMount → 子 onBeforeMount → 子 onMounted → 父 onMounted

5. 异步更新机制优化

Vue 3 的更新阶段采用 异步渲染 机制,优化了性能并减少不必要的重复计算。例如,多次修改响应式数据后,Vue 3 会合并更新,避免频繁触发 DOM 操作。

示例
import { ref, onUpdated } from 'vue';export default {setup() {const count = ref(0);onUpdated(() => {console.log('DOM 更新后触发一次');});// 多次修改 count,只会触发一次 onUpdatedcount.value++;count.value++;}
};

6. 清理副作用(Cleanup)

在 Vue 3 中,onBeforeUnmount 是清理资源(如定时器、事件监听器)的推荐位置。

Vue 2 示例
export default {mounted() {this.timer = setInterval(() => {console.log('定时器运行');}, 1000);},beforeDestroy() {clearInterval(this.timer); // 清理定时器}
};
Vue 3 示例
import { onMounted, onBeforeUnmount } from 'vue';export default {setup() {let timer = null;onMounted(() => {timer = setInterval(() => {console.log('定时器运行');}, 1000);});onBeforeUnmount(() => {clearInterval(timer); // 清理定时器});}
};

7. 完整对比示例

Vue 2 生命周期钩子
export default {data() {return { message: 'Hello Vue 2' };},created() {console.log('created');},mounted() {console.log('mounted');},beforeDestroy() {console.log('beforeDestroy');}
};
Vue 3 生命周期钩子
import { ref, onMounted, onBeforeUnmount } from 'vue';export default {setup() {const message = ref('Hello Vue 3');console.log('setup'); // 替代 created/beforeCreateonMounted(() => {console.log('mounted');});onBeforeUnmount(() => {console.log('onBeforeUnmount'); // 替代 beforeDestroy});return { message };}
};

总结

特性Vue 2Vue 3
钩子名称原始命名(如 beforeCreate添加 on 前缀(如 onBeforeMount
组合式 API不支持支持,通过 setup() 函数组织逻辑
调试钩子新增 onRenderTracked/onRenderTriggered
执行顺序父组件先执行 created父组件先执行 setup
清理资源beforeDestroyonBeforeUnmount
异步更新优化同步更新异步合并更新

最佳实践建议

  1. 优先使用组合式 API:在 Vue 3 中,组合式 API 更适合复杂逻辑的组织和复用。
  2. 清理资源:始终在 onBeforeUnmount 中移除事件监听器或清除定时器。
  3. 避免在 onUpdated 中修改数据:防止无限更新循环。
  4. 利用调试钩子:通过 onRenderTracked 和 onRenderTriggered 优化性能瓶颈。

通过以上对比,可以更清晰地理解 Vue 3 的生命周期设计与 Vue 2 的差异,并在实际开发中灵活应用。

http://www.dtcms.com/a/467119.html

相关文章:

  • 企业级BPM低代码平台JMEEV深度解析
  • 网站建设关键词布局wordpress全部文件夹
  • 东城区网站排名seo如何进行网络营销服务创新
  • Arbess从入门到实战(10) - 使用Arbess+GitLab实现.Net 项目自动化部署
  • 重庆帝一网络网站建设专家南京房地产网站
  • 《K8s集群多节点部署》(Ubuntu22.04)
  • 做网站赚大钱php手机网站建设
  • 如何把网站主关键词做到百度首页中国重大新闻
  • 免费做app和网站的平台有哪些最贵网站建设多少钱
  • 36kr网站用什么做的wordpress开发人力资源
  • 亚马逊网站建设网站seo关键词排名优化
  • 软件下载网站如何履行北京外包公司都有哪些
  • 网站建设中出现的错误代码自己建立一个网页
  • 音乐网站开发 群云南百度推广开户
  • Linux_基本指令1
  • 优化网站设计请大学生做网站
  • 网站维护包括大学生网页设计报告
  • 计算机应用技术网站开发基础知识龙岗网站制作公司
  • 网站设计英文报告低价网站空间
  • 百度AI车牌识别配置指南
  • 网站建设开票的税收分类虚拟专用网络
  • 跟京东类似的网站营销最好的方法
  • 美食网站建设策划书范文公司在东莞建设网登记要多少钱
  • 天宁网站建设制作国际最新十大新闻事件
  • phpcms 移动网站模板代理服务器ip免费
  • 找网站建设都需要注意哪些wordpress浮动视频
  • 搜索的网站后大拇指分享数量不见了凡科快图入口
  • 网站界面设计说明网页版游戏推荐
  • 必应网站收录在哪wordpress备份到网盘
  • 杂志社网站建设意义免费的logo网站