面试复习系列
文章平均质量分 90
TE-茶叶蛋
全干工程师,阿里云专家博主
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
React 的 `cache()` 函数
React 19引入的cache()函数是优化重复计算和数据获取的重要API。它通过缓存函数结果避免重复执行,在相同参数调用时直接返回缓存值。适用于跨组件数据共享、减少API请求和优化高开销计算,但不适合事件处理或状态更新。服务端组件中缓存绑定到当前请求,客户端则全局共享。需注意使用纯函数、避免大型对象缓存,且参数必须可序列化。相比useMemo等单组件缓存方案,cache()提供更广范围的性能优化,尤其适合RSC架构应用。原创 2025-07-19 10:06:53 · 935 阅读 · 0 评论 -
React 服务器组件 (RSC)
React服务器组件(RSC)是一种仅在服务端执行的特殊组件,通过减少客户端JS体积、直接访问服务端资源和自动代码分割来优化性能。RSC必须是异步函数,不能使用Hooks或浏览器API,只能返回可序列化数据或客户端组件。与客户端组件协作时,RSC作为父组件传递数据,客户端组件处理交互逻辑。RSC适合数据获取和静态内容渲染,而客户端组件适合处理交互和状态管理。通过合理组合这两类组件,可以构建高性能的React应用。原创 2025-07-19 05:26:35 · 2455 阅读 · 0 评论 -
Nuxt 3 面试题合集(中高级)
Nuxt 3采用约定式项目结构,主要目录包括:pages(自动生成路由)、components(自动注册组件)、layouts(布局模板)、composables(组合式函数)、plugins(启动插件)、middleware(路由守卫)、assets/public(静态资源)和server(API路由)。其路由机制基于文件系统,动态路由通过方括号(如[id].vue)定义,嵌套路由通过目录结构实现。Nuxt 3提供三类生命周期钩子:构建时钩子(用于模块开发)、应用运行时钩子(用于插件)和服务端运行时钩子(原创 2025-07-04 23:23:07 · 1218 阅读 · 0 评论 -
Tailwind CSS自定义用法
摘要:React项目集成Tailwind CSS及自定义样式配置指南 本文详细介绍了在React项目中集成Tailwind CSS并进行自定义样式配置的完整流程。主要内容包括: 基础集成:通过Vite项目演示安装Tailwind CSS、PostCSS和Autoprefixer,配置tailwind.config.js文件,创建全局样式文件并引入核心指令(@tailwind base/components/utilities) 四种自定义方式: 通过theme.extend扩展主题(颜色、间距、字体等) 使原创 2025-06-27 12:46:01 · 1566 阅读 · 0 评论 -
ESLint 新一代“平铺配置”(Flat Config)
本文介绍了如何解决ESLint和Prettier在Vue和TypeScript文件中的配置冲突问题。通过采用"分而治之"的策略,将配置拆解为多个独立模块,形成一条"流水线"处理流程:首先全局忽略不需要检查的文件,然后加载TS和Vue的推荐规则,再添加自定义规则,接着针对Vue文件设置专用解析器(Vue解析器处理外层,TS解析器处理script标签内容),最后用Prettier统一格式化风格。这种模块化配置方式解决了文件类型差异带来的解析问题,避免了工具间的规则冲突,实原创 2025-06-20 07:41:28 · 1075 阅读 · 0 评论 -
React 国际化方案最佳实践调研
摘要 大厂React国际化最佳实践主要采用React-i18next、React-Intl和LinguiJS等方案。React-i18next功能全面,支持SSR和按需加载;React-Intl注重ICU标准,需自行实现语言检测;LinguiJS采用编译时优化,运行时体积更小。翻译资源管理建议按模块拆分JSON文件,采用动态加载优化性能。语言切换推荐URL前缀方式利于SEO,配合多级自动识别策略(优先用户选择,其次浏览器语言)。实现时应提供显式切换控件,确保用户体验。Next.js项目可通过App/Page原创 2025-06-17 18:25:13 · 1373 阅读 · 0 评论 -
HTML5 更新的功能
HTML5核心功能摘要: 语义化标签(如<header>、<article>)优化SEO与文档结构; 原生多媒体支持(<video>、<audio>)替代Flash; Canvas/SVG实现动态图形绘制; 表单增强新增输入类型(date、color)及验证属性; Web Storage提供大容量本地存储; 地理定位、拖放API等交互功能; Web Workers后台线程处理耗时任务; WebSocket支持实时通信。示例代码涵盖主要应用场景,显著提升现代We原创 2025-06-17 16:04:48 · 1231 阅读 · 0 评论 -
7大维度系统分析WebSocket常见断连原因
WebSocket连接断开的原因及解决方案分析:文章从网络层(50%)、传输层(15%)、服务端(20%)、客户端(10%)、应用层协议(5%)、运维环境(3%)和主动断开(2%)七个维度系统解析断连原因,并提出针对性优化方案。客户端需实现心跳机制、异常处理和指数退避重连策略,服务端应加强监控。通过分层诊断和优化(如分级重连、备用通道),可将断连率降至万分之一以下。诊断工具包括抓包分析和状态码监测。原创 2025-06-13 23:55:52 · 1242 阅读 · 0 评论 -
WebSocket 前端断连原因与检测方法
WebSocket断连分析与React前端优化策略 摘要:本文分析了WebSocket连接中断的常见原因(网络波动、服务器断开、浏览器限制等)及检测方法,并针对聊天系统和行情推送两类应用场景探讨了断连的影响差异。提出了React前端中的稳定性优化方案,包括自动重连设计(采用指数退避策略)、心跳保活机制、连接状态管理、用户提示优化等核心策略。特别强调聊天系统需确保消息完整性,行情推送则需快速恢复数据连续性。文章还提供了不同场景下的差异化处理建议,为构建高可用的实时Web应用提供实用指导。原创 2025-06-13 20:56:05 · 2064 阅读 · 0 评论 -
Vue Fragment vs React Fragment
摘要:Vue 3与React的Fragment功能在设计理念相似,但实现方式存在差异。Vue Fragment默认启用且无需引入,支持多根节点和插槽,适合模板系统;React Fragment需显式使用,支持key属性,适合列表渲染。两者都不会渲染额外DOM节点,提升性能。Vue在编译优化和静态提升方面表现更好,React则依赖Fiber架构和手动优化。根据项目需求选择:Vue适合插槽与模板场景,React适合灵活逻辑控制与列表渲染。原创 2025-06-07 11:04:35 · 1301 阅读 · 0 评论 -
Next.js中Protected Route(受保护路由)
在 Next.js 中实现受保护路由主要有几种方式:1)使用中间件(Middleware)全局拦截请求;2)在 Server Component 中直接校验并重定向;3)通过高阶组件(HOC)保护传统 pages 目录下的页面;4)利用 app 目录的 Layout 组件统一控制。最佳实践是结合 RSC 架构使用 Layout 封装保护逻辑,配合中间件进行全局预检。服务端方案(如 redirect())能避免客户端闪烁,而客户端方案适合动态页面。文件结构建议将受保护页面分组到 (protected) 目录下原创 2025-06-05 11:24:53 · 892 阅读 · 0 评论 -
React-props
React 中的 Props 机制详解与高级实践 本文系统介绍了 React 组件通信的核心机制 props,包括基础特性和高级应用模式。主要内容分为: 1️⃣ 基础特性: props 是父组件向子组件传递数据的只读属性 单向数据流、支持任意类型数据 每次渲染都会生成新 props 引用 2️⃣ 核心细节: props 优化(React.memo 和 useCallback) 默认值设置方法 children 插槽的使用 函数作为 props 的闭包问题 3️⃣ 高级模式: Render Props 状态控原创 2025-05-30 21:57:11 · 1608 阅读 · 0 评论 -
ReactJS 中的 JSX工作原理
本文深入解析了React中JSX的编译机制及其底层渲染流程。JSX通过Babel编译为React.createElement调用,生成虚拟DOM对象。React采用Fiber架构构建Fiber树,通过Reconciliation进行差异对比,最终在Commit阶段更新真实DOM。React 18引入的并发模式利用Fiber实现可中断渲染和优先级调度,采用双缓存机制优化性能。理解这一流程有助于开发者优化渲染性能,合理使用并发特性,并正确设计组件结构。原创 2025-05-30 21:29:05 · 1552 阅读 · 0 评论 -
SSG vs SSR vs ISG 页面渲染策略对比
本文对比了SSG、SSR和ISG三种页面渲染策略的核心差异。SSG(静态生成)在构建时预渲染所有页面,性能最优但动态内容支持弱;SSR(服务端渲染)每次请求实时生成页面,支持动态数据但性能开销较大;ISG(增量静态生成)结合两者优势,通过混合生成策略实现性能与动态性的平衡。关键维度包括:SSG适合CDN缓存和固定内容场景,SSR适用于实时个性化需求,ISG则通过按需更新机制兼顾速度与内容新鲜度。实际应用中,Next.js、Nuxt等框架针对不同场景提供了灵活的实现方案。选择策略需权衡性能、动态性、SEO和部原创 2025-05-24 17:11:09 · 1447 阅读 · 0 评论 -
前端错误监听与上报框架工作原理,如:Sentry
Sentry等前端错误监控系统通过劫持浏览器原生错误处理机制和框架生命周期异常,实现错误捕获与上报。其核心流程包括:浏览器层监听:通过window.onerror捕获同步错误使用unhandledrejection事件拦截未处理的Promise错误覆写全局API如console.error和网络请求方法原创 2025-05-24 10:35:45 · 1712 阅读 · 0 评论 -
TypeScript,枚举(Enum)Vs 常量枚举(const Enum)
在 TypeScript 中,普通枚举(Enum)和常量枚举(const Enum)在编译时的表现有显著差异。普通枚举会生成双向映射的运行时对象,支持动态访问,适合需要反射的场景;而常量枚举在编译时会被完全内联,不生成运行时代码,性能更优,但无法动态访问,且与工具链强耦合。Vue 3 源码不建议使用常量枚举,主要因其工具链兼容性问题(如 Babel 默认不支持)、调试困难以及灵活性限制。Vue 3 推荐使用普通枚举或字面量联合类型,以确保兼容性和可维护性。在库开发中,优先选择普通枚举或联合类型更为合适。原创 2025-05-22 08:24:23 · 538 阅读 · 0 评论 -
Web Workers 使用指南
Web Workers 是浏览器提供的 JavaScript 多线程解决方案,允许在后台线程中运行脚本,避免阻塞主线程。原创 2025-05-21 23:12:54 · 709 阅读 · 0 评论 -
Vue大数据量前端性能优化策略
在处理 Vue 项目中约 1000 条数据(约10MB)的图表与列表混合渲染时,性能优化至关重要。本文介绍了多种优化策略,包括虚拟列表、懒加载、Web Worker、图表渲染优化和分批渲染等。虚拟列表通过仅渲染可视区域内的列表项,显著提升渲染性能,避免一次性渲染大量 DOM 节点。懒加载技术则通过延迟加载不在视口内的内容,减少首屏渲染压力,适用于长列表和图表的按需加载。Web Worker 可用于在后台线程中处理复杂的数据计算,避免阻塞主线程,提升图表数据预处理的效率。通过这些优化手段,可以有效提升大型数据原创 2025-05-21 22:57:45 · 2511 阅读 · 0 评论 -
React 常见的陷阱之(如异步访问事件对象)
在 React 开发中,处理合成事件时可能会遇到一些常见问题,如异步访问事件对象、事件传播误解、事件监听器未正确卸载等。针对这些问题,可以采取以下解决方案:在异步操作前提取事件属性或使用 e.persist() 保留事件对象;使用 e.nativeEvent.stopImmediatePropagation() 完全阻止事件传播;在 useEffect 或 componentWillUnmount 中清理事件监听器;在动态列表中使用 data-* 属性或 useCallback 优化事件绑定;避免直接通过原创 2025-05-20 22:17:42 · 982 阅读 · 0 评论 -
React的合成事件(SyntheticEventt)
React的合成事件(SyntheticEvent)是React为了统一不同浏览器的事件处理行为而封装的一套跨浏览器事件系统。与原生事件相比,合成事件在事件绑定方式、事件委托机制、事件对象、事件池、事件传播与阻止冒泡、执行顺序、自动绑定管理、兼容性和事件类型覆盖等方面存在显著差异。合成事件通过事件委托到根节点,减少了内存消耗,并统一了跨浏览器的属性。然而,在混合使用合成事件和原生事件时,需注意执行顺序和事件传播的影响。对于特殊场景,如非冒泡事件,仍需依赖原生事件处理。总体而言,React合成事件提供了跨浏览原创 2025-05-20 21:54:39 · 1200 阅读 · 0 评论 -
HTTP 协议的发展历程及技术演进
HTTP协议自1989年由蒂姆·伯纳斯-李提出以来,经历了多个版本的演进。最初的HTTP/0.9仅支持简单的GET请求,无状态码和头部信息。HTTP/1.0引入了状态码、头部和多种内容类型,但仍存在每次请求需新建TCP连接的问题。HTTP/1.1通过持久连接、管线化和分块传输编码等改进,显著提升了性能,并支持虚拟主机和更精细的缓存控制。HTTP/2则采用二进制分帧、多路复用和头部压缩等技术,进一步提高了传输效率,并支持服务器推送。尽管HTTP/2解决了应用层的队头阻塞,但传输层的队头阻塞问题在HTTP/3中原创 2025-05-20 08:17:47 · 1781 阅读 · 0 评论 -
JavaScript 中的五种继承方式进行深入对比
本文详细对比了JavaScript中的五种继承方式:原型链继承、构造函数继承、组合继承、寄生组合继承以及ES6的class extends继承。每种方式的核心原理、示例代码、优缺点及应用场景均进行了深入分析。原型链继承通过子类原型指向父类实例实现继承,简单但存在引用属性共享问题;构造函数继承通过在子类构造函数内调用父类构造函数实现属性继承,但无法继承方法;组合继承结合了前两种方式的优点,既继承属性又继承方法;寄生组合继承进一步优化组合继承,减少父类构造函数调用次数;ES6的class extends继承语法原创 2025-05-19 23:34:49 · 1668 阅读 · 0 评论 -
uniapp中的easycom工作机制
uni-app 中的 easycom 是一种自动组件注册机制,能够简化组件的使用流程,提升开发效率。通过 easycom,开发者无需在页面中手动引入和注册组件,直接使用组件标签即可。其工作原理是通过自动扫描 components 目录下的 .vue 和 .nvue 文件,将组件名作为标签名进行注册。easycom 在编译阶段生效,支持自定义匹配规则。配置方式是在 pages.json 中设置 easycom 属性,启用自动扫描并定义规则。easycom 的优点包括减少样板代码、提升维护性、支持按需引入等,但原创 2025-05-18 10:45:04 · 1956 阅读 · 0 评论 -
React 中,闭包陷阱
在 React 中,闭包陷阱常见于 Hooks 和异步操作中,表现为捕获过期变量值。典型场景包括 useEffect 中捕获初始状态值,导致后续操作无法获取最新状态。解决方案包括:1. 正确声明依赖数组,确保闭包捕获最新值;2. 使用 useRef 存储可变引用,穿透闭包获取最新值;3. 使用函数式更新(如 setCount(c => c + 1)),直接基于最新状态更新;4. 通过 useCallback 冻结闭包,控制函数重新创建时机。此外,在异步操作和自定义 Hooks 中,合理管理闭包依赖也是原创 2025-05-17 14:52:41 · 1265 阅读 · 0 评论 -
JavaScript 的编译与执行原理
本文深入探讨了 JavaScript 的编译与执行过程,重点解析了词法分析、语法分析、语义分析等编译阶段,以及执行上下文、作用域、作用域链和闭包等核心概念。文章指出,JavaScript 虽然是解释型语言,但在执行前仍会经历编译阶段,生成抽象语法树(AST)并创建执行上下文。通过词法环境和变量环境,JavaScript 实现了作用域链的构建,而闭包则是函数与其定义时词法环境的组合,能够“记住”外部变量。文章还通过示例代码展示了 var 和 let 在循环中的作用域差异,并强调了理解这些概念对编写和调试 Ja原创 2025-05-17 14:45:45 · 1339 阅读 · 0 评论 -
Uniapp、Flutter 和 React Native 全面对比
本文对 Uni-app、Flutter 和 React Native 三大跨平台移动应用开发框架进行了全面对比,涵盖性能、跨平台能力、学习曲线、社区生态、原生扩展、UI 渲染、企业应用和开发效率八个维度。Uni-app 基于 Vue.js,支持多端发布,学习曲线平缓,社区生态以中文为主;Flutter 使用 Dart 语言,性能接近原生,UI 表现一致,但学习成本较高;React Native 基于 JavaScript 和 React,前端开发者易于上手,社区资源丰富,但性能在复杂场景下可能受限。三者各有原创 2025-05-17 10:21:40 · 3876 阅读 · 0 评论 -
uni-app 中适配 App 平台
uni-app 在适配 App 平台时,采用混合开发架构(Hybrid App Runtime),核心是 WebView 与原生容器的结合。前端代码运行在 WebView 中,通过 plus.* API 调用原生能力(如摄像头、定位等),并通过 JSBridge 实现 Web 层与 Native 层的双向通信。这种架构称为“HTML5+ Runtime”,由 DCloud 自研,支持 Android 和 iOS 平台。开发者可以通过 plus.xxx API 调用原生功能,并通过回调机制获取结果。uni-a原创 2025-05-16 23:15:34 · 1798 阅读 · 0 评论 -
uni-app 高级面试题详解
本文详细介绍了 uni-app 框架的原理、项目架构、性能优化、安全与权限管理以及场景实战应用。uni-app 通过 Vue.js 和条件编译实现“一套代码多端运行”,支持 H5、小程序和 App 平台。项目架构建议模块化设计,使用 Pinia 进行状态管理,并封装组件库和实现国际化。性能优化包括页面懒加载、资源压缩和缓存策略。安全方面涉及页面权限控制和防止重复提交。实战场景包括支付封装、自动跳转计时器和离线页面支持。最后,文章指出 uni-app 在复杂动画、Web 性能和插件生态方面的局限性。原创 2025-05-16 23:03:24 · 1752 阅读 · 0 评论 -
TypeScript中namespace 和模块(module)
在 TypeScript 中,namespace 和模块(module)是两种不同的代码组织方式,主要区别在于作用域、编译行为和使用场景。namespace 默认全局可见,适合在非模块化环境中组织代码,编译后生成闭包代码;而模块具有文件作用域,需显式导入,编译为符合 ESM/CommonJS 的模块系统代码。namespace 适用于全局类型扩展、旧代码兼容等场景,而模块则更适合现代前端项目和明确的依赖管理。在 React 类型声明中,namespace 和模块常结合使用,实现双重导出。总体而言,现代项目中原创 2025-05-15 08:34:12 · 692 阅读 · 0 评论 -
Typescript 三斜杠指令
在 TypeScript 中,三斜杠指令(///)是一种特殊的语法,用于在编译时提供额外指令或声明依赖关系。其主要作用包括声明文件依赖、启用编译特性和配置模块解析。常见的三斜杠指令类型有 /// <reference types="..."> 用于引入第三方库的类型声明,/// <reference path="..."> 用于引入自定义类型声明文件,以及 /// <reference lib="..."> 用于原创 2025-05-15 08:29:57 · 771 阅读 · 0 评论 -
Node.js中的洋葱模型
洋葱模型是一种中间件执行机制,通过层层包裹的中间件结构,实现请求从外到内穿透、响应从内向外返回的顺序执行。该模型的核心概念包括类比洋葱的层次结构和中间件通过next()函数传递控制权。实现原理涉及中间件的进入和返回阶段,以及Koa通过koa-compose库严格遵循洋葱模型,而Express基于回调函数可能导致异步中间件执行顺序混乱。框架对比显示Koa更适合精细控制异步流程,而Express在同步场景下更具优势。实际应用场景包括日志记录、统一错误处理和权限验证。总的来说,洋葱模型通过中间件现了请求-响应流程原创 2025-05-13 07:22:55 · 1647 阅读 · 0 评论 -
常见的浏览器默认行为
在 React 开发中,理解并控制浏览器的默认行为(如点击链接跳转、表单提交刷新页面等)至关重要。通过 event.preventDefault() 可以阻止这些默认行为,从而实现自定义逻辑。常见的应用场景包括阻止表单提交刷新页面、阻止链接跳转、阻止拖拽文件打开等。文章还提供了最佳实践和封装方法,如使用 usePreventDefault Hook 统一处理拖拽、表单等事件的默认行为。合理使用 preventDefault 可以提升用户体验,但需根据实际需求决定是否阻止默认行为。原创 2025-05-12 09:23:33 · 1343 阅读 · 0 评论 -
React 从零到一执行原理 (2025 最新版)
React 从零到一的执行原理分析涵盖了JSX转译、虚拟DOM生成、Fiber架构、调和与调度机制、组件构建过程以及Hooks的执行机制。React通过Babel将JSX转译为React.createElement调用,生成虚拟DOM树。Fiber架构将渲染工作拆分为可中断的单元任务,支持增量渲染和优先级调度。调和算法通过比较新旧虚拟DOM树,找出最小差异并标记副作用,提交阶段则一次性应用这些变更。组件分为函数组件和类组件,函数组件通过Hooks管理状态和副作用,Hooks的执行依赖于Fiber对函数组件状原创 2025-05-11 08:17:50 · 1933 阅读 · 0 评论 -
Vue3组件通信 emit 的工作原理
本文深入解析了 Vue 3 中 emit 的工作原理,重点从源码角度探讨了其实现机制。emit 是子组件向父组件发送事件的核心方法,其实现依赖于组件实例的上下文。源码中,emit 函数通过闭包绑定当前组件实例,并在 runtime-core 中查找并执行父组件传递的事件处理函数。关键步骤包括事件名的转换(如 change 转为 onChange)、从 props 中查找对应处理函数,以及通过 callWithAsyncErrorHandling 确保错误处理。文章通过示例和流程图简化了理解过程,最终总结了原创 2025-05-10 16:51:04 · 761 阅读 · 0 评论 -
TypeScript interface vs type 对比
TypeScript 中的interface与type做一个深入对比,包括语法特性、使用场景、兼容性与扩展性,以及底层行为差异。原创 2025-05-10 07:19:21 · 1028 阅读 · 0 评论 -
Vue 3 中编译时和运行时的概念区别
Vue 3 中的编译时和运行时是两个关键阶段,分别负责模板的编译和组件的实际执行。编译时阶段将模板转换为渲染函数,并进行静态提升、指令转换等优化,以减少运行时的开销。运行时阶段则负责创建组件实例、初始化响应式系统,并执行渲染和更新流程。组件实例在运行时创建,因为此时组件的所有选项和数据来源(如父组件传入的 props)都已确定,Vue 才能实例化组件并运行初始化逻辑。编译时生成组件的“类”定义,而运行时按需创建多个实例。这种分离确保了 Vue 3 的高效性和灵活性。原创 2025-05-09 13:49:33 · 1473 阅读 · 0 评论 -
es6/7练习题1
以下是几道高质量的ES6+ 综合面试题。原创 2025-05-08 10:22:50 · 847 阅读 · 0 评论 -
h5中 画1px 的几种方案
在移动端 H5 开发中,由于高分屏(高 DPR)设备上 1px 看起来“很粗”,实现“真正 1px 线”的视觉效果就成了一个经典问题。以下是 H5 中实现1px 线条效果方案编号名称推荐场景方案①scale 缩放法通用分割线,快速易用方案②伪元素 + scale组件封装,支持多边线方案③hairlines 类方案WeUI、Vant 等项目推荐方案④渐变线、艺术线需求方案⑤SVG/Canvas高精度线条或图形组件。原创 2025-05-08 06:55:59 · 856 阅读 · 0 评论 -
适配移动端不同屏幕尺寸
适配移动端不同屏幕尺寸是移动 H5 开发的关键环节,下面提到的四种主流方案分别做详细讲解、适用场景分析与代码示例。rem(root em)是相对于根元素<html>的字体大小进行缩放的单位。举例:如果,那么。场景建议方案rem 不生效检查是否动态设置了 html 的 font-sizepx 没被转 rem检查 postcss-pxtorem 安装和配置第三方样式错乱添加忽略转换字体放大、偏移添加防止缩放干扰微信中滚动问题、全屏异常避免使用 100vh,动态计算可视高度。原创 2025-05-08 06:44:50 · 1089 阅读 · 0 评论 -
React Router Vs Vue Router
React 社区主流使用的是,它和 Vue Router 是功能上非常类似的客户端路由库,但底层实现原理与 Vue Router 在设计理念上有显著差异。相同点不同点都使用 history API 或 hash 进行地址管理Vue 用配置式路由表;React 用 JSX 声明式结构都支持嵌套路由、动态参数、懒加载、路由组件渲染等Vue 内建导航守卫;React 需自行通过组件逻辑封装都有<Outlet>类似插槽来决定显示哪个组件。原创 2025-05-07 22:45:04 · 1392 阅读 · 0 评论
分享