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

10月25日

1. ES6 模块导入语法(import)

  • 带 {} 的 import(解构导入):导入模块中按名字导出的(named exports)。
  • 不带 {} 的 import:导入模块中默认导出的(default export)。

1. 默认导出(default export)

导出时这样写:
utils/request.js

export default {get() {},post() {}
}

导入时写法是:

import request from '../utils/request'

特点:
default 导出的模块可以用 任意名字 接收;
因为一个文件只能有 一个默认导出。
例如:

import abc from '../utils/request' // 也能用abc代替request

2. 命名导出(named export)
导出时这样写:
vue内部就是这种

export function reactive() {}
export function getCurrentInstance() {}

或:

// 另一种写法
function reactive() {}
function getCurrentInstance() {}export { reactive, getCurrentInstance }

导入时要写成:

import { reactive, getCurrentInstance } from 'vue';

特点:

必须用 花括号 {};
名字 必须完全匹配 导出的名字;
一个文件可以导出多个命名成员。

2. 生命周期钩子

Vue 组件的“生命周期钩子”就是在组件从创建到销毁的整个过程中,Vue 自动触发的一系列回调函数。
你可以在这些时机点上,插入自己的逻辑。

阶段选项式 API 写法组合式 API 写法触发时机
🧱 创建阶段beforeCreate()❌(不支持,setup 前执行)组件实例刚被创建,dataprops 还没初始化
created()❌(不支持,setup 时执行)数据已初始化,但 DOM 还没生成
🧩 挂载阶段beforeMount()onBeforeMount()模板还未挂载到真实 DOM 上
mounted()onMounted()模板渲染完,DOM 已插入页面
🔄 更新阶段beforeUpdate()onBeforeUpdate()响应式数据更新前(DOM 还没变)
updated()onUpdated()响应式数据更新后(DOM 已更新)
❌ 卸载阶段beforeUnmount()onBeforeUnmount()组件将要销毁(可清理定时器等)
unmounted()onUnmounted()组件已销毁(DOM 已移除)
🧭 错误捕获errorCaptured(err, vm, info)onErrorCaptured()子组件发生错误时触发
🌐 路由组件专用activated()onActivated()<KeepAlive> 缓存组件被激活时
deactivated()onDeactivated()<KeepAlive> 缓存组件被隐藏时

Vue 3 生命周期执行顺序

beforeCreate → created → beforeMount → mounted → beforeUpdate → updated → beforeUnmount → unmounted

注意:
在 Vue 3 的 <script setup> 语法中,
beforeCreate 和 created 已经被「合并进 setup」阶段了,
即 setup 执行时间 ≈ created。

常用的生命周期用途

钩子常见用途
onMounted初始化数据、访问 DOM、调用接口
onBeforeUpdate更新前做数据快照
onUpdated数据更新后调整样式或位置
onBeforeUnmount清理定时器、事件监听器
onUnmounted释放资源、断开连接
onErrorCaptured捕获子组件的错误日志

3. onMounted() 执行细节

我们细分三种情况来看:

1. 刷新浏览器(F5 / Ctrl+R)

整个应用会被销毁并重新创建:
根组件重新挂载;
当前页面组件也重新创建;
所以 onMounted() 一定会执行。

例如:

onMounted(() => {console.log("页面挂载:执行初始化逻辑");
});

刷新后你会看到控制台打印一次。

2. 从其他路由跳转到当前页面
比如从 /home → /user:
/user 对应的组件会新创建并挂载;
所以 onMounted() 也会执行。

换句话说:
每次切换“不同的组件页面”,新的组件都会走一次完整生命周期
setup() → onMounted()。

3. 组件被 <keep-alive> 缓存的情况

如果你的 <RouterView /> 是包在 <keep-alive>里的,比如:

<keep-alive><RouterView />
</keep-alive>

那被缓存的组件在切换回来时不会重新挂载。
此时:
不会执行 onMounted()
会执行 onActivated()

例子:

onMounted(() => {console.log('第一次进入页面');
});
onActivated(() => {console.log('再次返回页面');
});

结果:
第一次进入:打印“第一次进入页面”
第二次返回(从别的路由回来):打印“再次返回页面”

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

相关文章:

  • 【电玩电脑杂志】超级整理合集PDF
  • 怎样做某个网站有更新的提醒成都网络优化网站
  • 计算机视觉:python车牌识别检测系统 YOLOv8 深度学习pytorch技术 LPRNet车牌识别算法 CCPD2020数据集 ✅
  • Qt 中如何操作 Excel 表格:主流开源库说明介绍与 QXlsx 库应用全解析
  • 基于单片机的全自动洗衣机控制器设计
  • 电子商务网站规划原则教师遭网课入侵直播录屏曝光口
  • 免费发广告网站攀枝花建设集团网站
  • Day 23 机器学习管道 pipeline
  • Vue CLI 插件开发完全指南:从原理到实战
  • Linux中内核和用户空间通信send_uevent函数的实现
  • Python设计模式实战:用Pythonic的方式实现单例、工厂模式
  • 智能规模效应:解读ChatGPT Atlas背后的数据边界之战
  • 网站建设雨点国家防疫政策最新
  • RabbitMQ Unacked 消息深度解析:机制、问题与解决方案
  • LabVIEW超高温高压流变仪开发
  • 理解面向问题域的需求分析(PDOA)方法
  • 肥东住房和城乡建设部网站WordPress国外赚钱
  • Dify从入门到精通 第31天 在 Dify 中构建智能天气查询机器人
  • 【机器人】RViz中LaserScan的参数信息说明
  • QXlsx操作Excel深度解析:核心类接口与 Qt C++ 功能解析
  • 今日Reddit AI高价值讨论分析 10.25
  • 福州百度网站快速优化郑州新闻最新消息今天
  • AI云“分野”:阿里云们“卖铲”,火山引擎奇袭“MaaS”
  • 阿里云渠道商:服务器操作系统怎么选?
  • 阿里云代理商:怎么通过ACL实现网络分层安全?
  • Go语言实现的简易远程传屏工具:让你的屏幕「飞」起来
  • 哪些网站做翻译可以赚钱织梦网站更改标题长度
  • 阮一峰《TypeScript 教程》学习笔记——declare关键字
  • Flutter 异步编程:Future 与 Stream 深度解析
  • 代码训练LeetCode(48)字母异位词分组