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

合川网站优化如何搭建系统平台

合川网站优化,如何搭建系统平台,wordpress修改头部显示,重庆设计公司网站在 Vue 2 和 Vue 3 中,生命周期钩子的核心作用一致——用于在组件不同阶段(如初始化、渲染、更新、销毁等)执行特定逻辑,但两者在命名规则、组合式 API 中的使用方式以及部分钩子的拆分/调整上存在明显区别。以下从核心区别、具体…

在 Vue 2 和 Vue 3 中,生命周期钩子的核心作用一致——用于在组件不同阶段(如初始化、渲染、更新、销毁等)执行特定逻辑,但两者在命名规则组合式 API 中的使用方式以及部分钩子的拆分/调整上存在明显区别。以下从核心区别、具体钩子对应关系和使用示例三方面详细说明:

一、核心区别

维度Vue 2(选项式 API)Vue 3(选项式 API / 组合式 API)
命名规则before/after+动作命名,如beforeCreatemounted选项式 API 中保留大部分 Vue 2 命名(仅调整 2 个);组合式 API 中需通过on+生命周期名调用(如onMounted)。
钩子数量11 个核心钩子(含activated/deactivated等 keep-alive 相关)。基础钩子逻辑一致,拆分了beforeDestroy/destroyed,新增setup替代beforeCreate/created
组合式 API 支持不支持(仅选项式 API)。组合式 API 中需在setup内通过导入的钩子函数注册(如onMounted(() => { ... })),更灵活。
销毁阶段钩子beforeDestroy(销毁前)、destroyed(销毁后)。重命名为beforeUnmount(卸载前)、unmounted(卸载后),语义更准确(“卸载”替代“销毁”)。
初始化阶段beforeCreate(实例创建前)、created(实例创建后)。这两个钩子的逻辑被setup替代(setup执行时机与两者一致,且无需手动调用)。

二、生命周期钩子对应关系(Vue 2 → Vue 3)

1. 基础生命周期(初始化、渲染、更新、卸载)
阶段Vue 2(选项式 API)Vue 3(选项式 API)Vue 3(组合式 API,需导入调用)作用说明
实例初始化beforeCreatesetup替代setup替代组件实例创建前(未初始化 props、data);Vue 3 中setup在此阶段执行,替代两者功能。
createdsetup替代setup替代组件实例创建后(已初始化 props、data);setup同样覆盖此阶段逻辑。
DOM 挂载beforeMountbeforeMount(不变)onBeforeMount模板编译完成,即将挂载到 DOM 前(此时$el未生成)。
mountedmounted(不变)onMounted组件已挂载到 DOM(可访问 DOM 元素,如document.getElementById)。
数据更新beforeUpdatebeforeUpdate(不变)onBeforeUpdate数据更新后,DOM 重新渲染前(可获取更新前的 DOM 状态)。
updatedupdated(不变)onUpdatedDOM 已完成重新渲染(可获取更新后的 DOM 状态,需避免在此修改数据导致死循环)。
组件卸载beforeDestroybeforeUnmount(重命名)onBeforeUnmount组件即将卸载前(可清理定时器、事件监听等,避免内存泄漏)。
destroyedunmounted(重命名)onUnmounted组件已卸载(所有子组件也已卸载,DOM 元素已移除)。
2. keep-alive 相关生命周期(缓存组件)
Vue 2(选项式 API)Vue 3(选项式 API)Vue 3(组合式 API)作用说明
activatedactivated(不变)onActivated组件被keep-alive缓存后激活时触发(第一次挂载和从缓存中恢复时)。
deactivateddeactivated(不变)onDeactivated组件被keep-alive缓存后失活时触发(离开组件且被缓存时,非卸载)。
3. 错误捕获生命周期
Vue 2(选项式 API)Vue 3(选项式 API)Vue 3(组合式 API)作用说明
无(需通过errorCaptured钩子)errorCaptured(不变)onErrorCaptured捕获子组件抛出的错误(返回false可阻止错误继续向上传播)。
renderTrackedonRenderTracked(调试用)响应式依赖被追踪时触发(仅开发环境有效)。
renderTriggeredonRenderTriggered(调试用)响应式依赖被触发更新时触发(仅开发环境有效)。

三、使用示例(Vue 2 vs Vue 3)

1. Vue 2(仅选项式 API)
export default {// 初始化阶段:实例创建前后beforeCreate() {console.log("Vue 2: 实例创建前(props/data未初始化)");},created() {console.log("Vue 2: 实例创建后(可访问props/data)");this.initData(); // 可在此调用方法初始化数据},// 挂载阶段:DOM渲染前后beforeMount() {console.log("Vue 2: 即将挂载($el未生成)");},mounted() {console.log("Vue 2: 已挂载(可操作DOM)");this.$refs.myDiv.textContent = "挂载后更新DOM"; // 访问DOM元素},// 更新阶段:数据更新前后beforeUpdate() {console.log("Vue 2: DOM更新前(可获取旧DOM)");},updated() {console.log("Vue 2: DOM更新后(可获取新DOM)");},// 销毁阶段:组件卸载前后beforeDestroy() {console.log("Vue 2: 即将销毁(清理定时器/事件)");clearInterval(this.timer); // 清理定时器},destroyed() {console.log("Vue 2: 已销毁(组件完全移除)");},methods: {initData() {/* 初始化数据逻辑 */},},
};
2. Vue 3(选项式 API,兼容 Vue 2 写法)

Vue 3 的选项式 API 对生命周期钩子的改动极小,主要是销毁阶段钩子重命名,其他用法与 Vue 2 一致,降低迁移成本:

export default {// 初始化阶段:`setup`替代beforeCreate/created(若用选项式API,仍可写created,但推荐用setup)created() {console.log("Vue 3选项式: 实例创建后(与Vue 2行为一致)");},// 挂载阶段:完全不变beforeMount() {console.log("Vue 3选项式: 即将挂载");},mounted() {console.log("Vue 3选项式: 已挂载(可操作DOM)");},// 更新阶段:完全不变beforeUpdate() {console.log("Vue 3选项式: DOM更新前");},updated() {console.log("Vue 3选项式: DOM更新后");},// 卸载阶段:钩子名调整(beforeUnmount/unmounted)beforeUnmount() {console.log("Vue 3选项式: 即将卸载(替代beforeDestroy)");clearInterval(this.timer);},unmounted() {console.log("Vue 3选项式: 已卸载(替代destroyed)");},
};
3. Vue 3(组合式 API,setup中使用)

组合式 API 中,生命周期钩子需先导入,再在setup内调用(通过回调函数注册逻辑),更适合按功能拆分代码(而非按生命周期阶段):

import { onBeforeMount, onMounted, onBeforeUnmount } from "vue";export default {// setup执行时机:与Vue 2的beforeCreate/created一致,替代两者setup() {console.log("Vue 3组合式: 实例创建前后(替代beforeCreate/created)");// 挂载前:注册onBeforeMount钩子onBeforeMount(() => {console.log("Vue 3组合式: 即将挂载");});// 挂载后:注册onMounted钩子onMounted(() => {console.log("Vue 3组合式: 已挂载(可操作DOM)");});// 卸载前:注册onBeforeUnmount钩子onBeforeUnmount(() => {console.log("Vue 3组合式: 即将卸载(清理资源)");clearInterval(timer);});// 定义定时器(示例)const timer = setInterval(() => {console.log("定时器运行中...");}, 1000);},
};

四、总结

  1. 核心逻辑不变:无论是 Vue 2 还是 Vue 3,生命周期的核心阶段(初始化、挂载、更新、卸载)和钩子的作用本质一致,只是命名和使用方式调整。
  2. Vue 3 的优化
    • setup统一初始化逻辑,简化代码;
    • 销毁阶段钩子重命名为“卸载”(beforeUnmount/unmounted),语义更清晰;
    • 组合式 API 中通过onXxx函数注册钩子,支持按功能拆分代码(如“数据请求+DOM 操作”可放在同一个onMounted中,无需分散在选项式的不同钩子)。
  3. 迁移建议:若从 Vue 2 迁移到 Vue 3,选项式 API 只需将beforeDestroy/destroyed改为beforeUnmount/unmounted;若使用组合式 API,需习惯在setup中通过导入的钩子函数注册逻辑,更灵活高效。
http://www.dtcms.com/a/613112.html

相关文章:

  • 苏州网站建设caiyiduo沈阳网站订制
  • c 购物网站开发流程网站代码开发定制
  • 网站icp备案信息查询王也道长头像
  • 网站怎么备案在哪里下载wordpress腾讯云cdn
  • 长宁区网站建设网页品牌设计作品
  • PS做游戏网站需要做几个网页王也诸葛青cp图
  • ppt做的模板下载网站天元建设集团坑人
  • 高度重视局门户网站建设网站建设管理工作情况的通报
  • 做经营性的网站备案条件想网上卖家具怎么做网站
  • 海口网站设计标书制作公司
  • 唐山市住房和诚乡建设局网站网站首页导航栏
  • 小企业网站欣赏展示型网站建设的建议
  • 禹城网站建设电话wordpress禁用插件
  • 深圳高端做网站公司重庆高端网站建设价格
  • 网站源码是什么意思塑料机械网站建设
  • 一般一个网站从建设到运营要多久简单的网站建设
  • 网站关键词优化代理做淘宝一样的网站有哪些
  • 公司要招个做网站的人公司官网设计模板
  • 网站备案是怎么回事公司已经有域名 怎么建网站
  • 深圳网站建设黄浦网络网上编程课的哪家好
  • 福州做网站的公html网站免费模板下载
  • 怎么创立网站杭州网站建设公司电话
  • 最精品网站建设在rds上安装wordpress
  • 建站公司兴田德润在哪里深圳app设计
  • 襄阳旅游景点网站建设制作个人免费网站展示设计
  • 做一些网站犯法么企业官网建站步骤
  • 互联网网站开发合同动态效果的网站建设技术
  • 网址的输入格式是什么样的seo关键词推广怎么做
  • 莆田网站建设团队门户网站主要包括哪些模块
  • 西安哪家公司网站做的好页游开服表