
vue.js
文章平均质量分 93
码上前端
欢迎来到码上前端,这里是前端开发者和技术爱好者的聚集地!我们致力于分享最新的前端技术动态、实用的开发技巧、深入的技术解析以及丰富的项目实战案例。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微前端实战:基于 WuJie + Vite + Vue3 的无界集成指南
本文介绍了如何使用WuJie微前端框架集成Vue3和React应用。WuJie基于WebComponents+iframe实现,具有沙箱隔离、跨框架支持和预加载等特性。文章详细演示了主应用(Vue3+Vite)和子应用(Vue3/React+Vite)的配置步骤,包括环境准备、路由适配、应用间通信(props和事件总线)等关键环节。同时提供了部署注意事项、常见问题解决方案和性能优化建议,如子应用预加载和资源缓存。通过WuJie框架,开发者可以实现技术栈无关的微前端架构,保持各子应用的独立开发体验,同时确保应原创 2025-07-04 10:15:42 · 1218 阅读 · 0 评论 -
前端开发Vue常用的组件库大全
前端组件库大全 Vant UI 、uView(Vue2)与 uview-plus(Vue3)、Electron框架 、VueUse工具库、NuTUI、Color UI等。原创 2025-05-06 14:45:34 · 3780 阅读 · 0 评论 -
部署上线清单:Vue 项目 Nginx 配置与静态资源 CDN 加速方案
通过合理的 Nginx 配置和静态资源 CDN 加速方案,可以有效地部署 Vue 项目,并提升网站的性能和用户体验。在部署过程中,需要注意各个环节的配置细节,确保网站的稳定性和安全性。希望这份部署上线清单能够帮助你顺利将 Vue 项目部署到生产环境中。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-04-29 00:15:00 · 1282 阅读 · 0 评论 -
Vue 环境变量配置指南:.env 文件与 process.env
env文件是一个用于存储环境变量的文本文件,通常位于项目的根目录下。它以KEY=VALUE的格式定义变量,每一行代表一个环境变量。在 Vue 项目中,约定以VUE_APP_开头的变量会被 webpack 处理并注入到中,从而可以在项目代码中使用。在 Node.js 环境中,是一个包含当前进程环境变量的对象。在 Vue 项目中,通过 webpack 等构建工具的处理,.env文件中定义的以VUE_APP_开头的环境变量会被注入到中,从而可以在项目的 JavaScript 代码中获取和使用这些变量。.env。原创 2025-04-28 08:52:26 · 1834 阅读 · 0 评论 -
Vue 部署全流程:静态文件 / Docker 部署实践
Docker 是一个开源的容器化平台,它可以将应用程序及其依赖项打包成一个独立的容器,从而实现应用程序的快速部署和迁移。使用 Docker 部署 Vue 项目可以提高部署的效率和可重复性。静态文件部署和 Docker 部署是两种常见的 Vue 项目部署方式,各有优缺点。在实际应用中,需要根据项目的规模、复杂度和团队的技术水平等因素选择合适的部署方式。通过本文的介绍,希望能够帮助开发者顺利完成 Vue 项目的部署。到这里,这篇文章就和大家说再见啦!原创 2025-04-28 08:47:48 · 1477 阅读 · 0 评论 -
生命周期钩子误区:Vue created/mounted 执行时机与 DOM 操作安全
Vue 实例从创建到销毁会经历一系列的阶段,每个阶段都有对应的生命周期钩子函数。这些钩子函数就像是一个个特定时间点的 “触发器”,开发者可以在这些时间点插入自己的代码逻辑。主要的生命周期阶段包括创建、挂载、更新、销毁等,而created和mounted分别处于创建和挂载阶段。created和mounted是 Vue 生命周期中非常重要的钩子函数,但它们的执行时机不同,在进行 DOM 操作时的安全性也不同。created阶段主要用于数据的初始化和异步请求的发起,不适合进行 DOM 操作;而mounted。原创 2025-04-28 08:43:40 · 1287 阅读 · 0 评论 -
Vue 开发跨域代理配置解决
跨域是指浏览器执行 HTTP 请求时,若请求的 URL 与当前页面的 URL 的协议、域名、端口三者任意一个不同,就会被视为跨域请求。例如,当前页面 URL 为,而请求的接口地址为(域名不同),或者(协议不同),又或者(端口不同),都会触发跨域限制。跨域问题在 Vue 项目的开发和生产环境中都需要重视。在开发环境中,通过配置代理可以有效解决跨域问题,方便开发者进行前后端联调;而在生产环境中,使用 CORS 在后端服务器进行配置,能够确保前端应用在不同域名下正常访问后端 API。原创 2025-04-27 08:41:23 · 1806 阅读 · 0 评论 -
深度剖析:Vue 中 scoped CSS 与 CSS Modules 在样式隔离上的应用对比
Vue scoped CSS 和 CSS Modules 都是有效的样式隔离方案,它们各有优缺点和适用场景。在选择使用哪种方案时,需要根据项目的规模、开发团队的技术水平和项目的需求来决定。对于小型项目和快速迭代开发,Vue scoped CSS 是一个不错的选择;对于大型项目和多人协作开发,CSS Modules 可以更好地管理样式,提高代码的可维护性。通过合理选择和使用这两种方案,可以有效地解决样式冲突的问题,提高前端开发的效率和质量。到这里,这篇文章就和大家说再见啦!原创 2025-04-27 08:34:48 · 1258 阅读 · 0 评论 -
移动端适配方案:Vue 项目 rem 布局与 viewport 设置实战
通过使用 rem 布局和合理设置 viewport,我们可以在 Vue 项目中实现移动端页面的自适应布局。rem 布局利用相对单位的特性,根据根元素的字体大小自动调整元素的尺寸,而 viewport 设置则确保页面在不同设备上以合适的比例显示。在实际开发中,我们可以根据设计稿的尺寸,将元素的尺寸转换为 rem 单位,从而实现页面在各种移动设备上的完美适配。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-04-25 08:55:51 · 1204 阅读 · 0 评论 -
Vue 组件卸载时的定时器与事件监听清理
在 Vue 应用开发中,正确清理定时器和事件监听是避免内存泄漏的关键。通过使用浏览器开发者工具和日志输出等方法,我们可以排查内存泄漏问题;通过在组件的生命周期钩子中清除定时器和移除事件监听,我们可以解决内存泄漏问题。在开发过程中,要养成良好的编程习惯,确保组件卸载时及时清理不再使用的资源,提高应用的性能和稳定性。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-04-25 08:39:36 · 800 阅读 · 0 评论 -
表单验证全攻略:VeeValidate 与 Element UI 表单验证方案对比
VeeValidate 是一个功能强大且灵活的 Vue 表单验证库,它提供了丰富的验证规则和自定义验证的能力,支持 Vue 2 和 Vue 3。其核心思想是将验证逻辑与表单组件分离,使得验证逻辑更加清晰和可维护。Element UI 是一套基于 Vue 的桌面端组件库,提供了丰富的表单组件和表单验证功能。它的表单验证功能集成在表单组件中,使用起来非常方便。VeeValidate 具有更高的灵活性,支持自定义验证规则和复杂的验证逻辑,而 Element UI 的验证规则相对固定,定制性较差。原创 2025-04-25 08:35:52 · 934 阅读 · 0 评论 -
状态管理选型指南:Vuex与Pinia的核心差异与迁移实践
家人们,大家好!今天分享一篇文章给大家!要是文章对你有帮助,激发了你的灵感,求个啦~后续还有超多惊喜,别错过!原创 2025-04-19 01:00:00 · 1201 阅读 · 0 评论 -
路由守卫陷阱解析:Vue导航守卫执行顺序与异步操作处理
Vue Router 提供了多种导航守卫,主要分为全局守卫、路由独享守卫和组件内守卫。理解 Vue 导航守卫的执行顺序和正确处理异步操作是避免路由守卫陷阱的关键。在实际开发中,要根据具体需求合理使用不同类型的导航守卫,并注意异步操作的处理,确保导航的正确性和稳定性。通过本文的解析,希望能帮助开发者更好地掌握 Vue 路由守卫的使用。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-04-18 00:45:00 · 1762 阅读 · 0 评论 -
性能优化实战:Vue列表渲染的虚拟滚动与分页加载方案
在处理大量列表数据时,虚拟滚动和分页加载是两种有效的性能优化方案。虚拟滚动适用于数据不需要分页的场景,通过减少 DOM 元素数量提高滚动性能;分页加载适用于需要分页展示数据的场景,通过减少一次性加载的数据量提高加载速度。在实际开发中,应根据具体的业务需求选择合适的优化方案。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-04-18 01:00:00 · 1162 阅读 · 0 评论 -
组件通信终极方案:Vue props/emit 与 provide/inject 对比实战
props用于父组件向子组件传递数据,它是单向数据流的一种体现,父组件的数据变化会影响子组件,但子组件不能直接修改props中的数据。emit则用于子组件向父组件发送自定义事件,通过触发这些事件,子组件可以将数据传递回父组件。provide和inject是一种跨级组件通信的方式。父组件通过provide选项提供数据,所有的后代组件都可以通过inject选项注入这些数据,而不需要通过中间组件进行传递。通信方式适用场景数据流向代码复杂度调试难度propsemit父子组件之间的简单通信单向,清晰较低。原创 2025-04-17 17:12:08 · 1059 阅读 · 0 评论 -
Vue 响应式失效场景汇总:数组变更与对象属性添加的坑与避坑
在深入探讨失效场景之前,我们先简单了解一下 Vue 的响应式原理。在 Vue 2 中,当一个 Vue 实例创建时,Vue 会遍历data选项中的所有属性,使用将这些属性转换为。这样,当这些属性的值发生变化时,Vue 能够检测到并更新与之绑定的 DOM。在 Vue 3 中,使用了Proxy对象来实现响应式,相比更加高效和强大。在使用 Vue 进行开发时,要特别注意数组变更和对象属性添加可能导致的响应式失效问题。对于 Vue 2,要合理使用Vue.set()或方法,以及数组的变异方法来确保响应式更新。原创 2025-04-17 17:09:11 · 1301 阅读 · 0 评论 -
Three.js 零基础入门:从场景搭建到第一个旋转立方体的实现
在当今的 Web 开发领域,3D 内容的呈现变得越来越重要。Three.js 作为一个强大的 JavaScript 3D 库,结合 Vue 3 的响应式系统和组件化开发能力,能够轻松创建出交互性强且视觉效果出色的 3D 场景。对于零基础的开发者来说,从实现一个简单的旋转立方体开始,是掌握 Three.js 和 Vue 3 结合开发的有效途径。本文将详细介绍如何搭建环境并实现第一个旋转立方体。通过以上步骤,我们成功地在 Vue 3 项目中集成了 Three.js,并实现了一个简单的旋转立方体 3D 场景。原创 2025-04-17 16:38:57 · 854 阅读 · 0 评论 -
深度解析:Vue + Three.js 实现 WebGL 渲染器的性能监控方案
通过本文的介绍,我们了解了如何在 Vue 项目中集成 Three.js 并实现 WebGL 渲染器的性能监控。使用 Stats.js 可以实时监控帧率和渲染时间,而 Chrome DevTools 则提供了更深入的性能分析功能。通过监控性能指标,我们可以及时发现性能问题并采取相应的优化措施,从而提升 WebGL 渲染的性能和用户体验。希望本文对你在 Vue + Three.js 开发中进行性能监控有所帮助。到这里,这篇文章就和大家说再见啦!原创 2025-04-17 16:03:07 · 736 阅读 · 0 评论 -
深入探究 Vue 的生命周期钩子函数
Vue3 组件的生命周期,指的是从组件被创建、挂载到 DOM,再到数据更新、最终被销毁的整个过程。在这个过程中,Vue3 提供了一系列的生命周期钩子函数,让开发者能够在特定阶段执行自定义代码。这些钩子函数就像是在组件生命周期旅程中的一个个站点,开发者可以在这些站点上添加自己的 “任务”。Vue3 的生命周期钩子函数为开发者提供了在组件不同生命周期阶段执行自定义逻辑的能力。通过合理运用这些钩子函数,我们能够更好地控制组件的行为,实现复杂的业务逻辑,优化组件性能。原创 2025-03-06 14:32:21 · 1692 阅读 · 0 评论 -
Vue 项目中使用 Mock 数据进行开发
在 Vue 项目中使用 Mock 数据可以让前端开发人员更加高效地进行页面开发和测试,减少对后端的依赖。本文介绍了两种常见的 Mock 数据的使用方式:Mock.js 和 JSON Server,并分享了 Mock 数据的管理和维护的一些经验。希望本文能够帮助你在 Vue 项目中更好地使用 Mock 数据。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-04-01 15:16:52 · 2424 阅读 · 0 评论 -
Vue.js 源码解析:computed 计算属性
通过以上源码解析,我们可以总结出 Vue.js 中computed在 Vue 实例初始化时,会调用函数来初始化computed选项。函数会遍历computed对象的每个属性,为每个属性创建一个惰性求值的Watcher实例。使用函数将计算属性定义到vm实例上,并根据是否需要缓存创建相应的getter函数。当访问计算属性时,会调用函数返回的函数,根据Watcher的dirty属性决定是否重新计算值,并处理依赖收集。当依赖的数据发生变化时,会将计算属性的Watcher的dirty属性设置为true。原创 2025-03-28 15:00:00 · 952 阅读 · 0 评论 -
Vue.js 源码解析:watch 监听的实现原理
通过以上源码解析,我们可以总结出 Vue.js 中watch在 Vue 实例初始化时,会调用initWatch函数来初始化watch选项。initWatch函数会遍历watch对象的每个属性,为每个属性创建一个Watcher实例。Watcher实例在创建时会调用get方法获取当前的值,并将自己添加到被监听数据的依赖列表中。当被监听的数据发生变化时,会触发update方法,在update方法中会重新获取新的值,并调用回调函数。理解watch。原创 2025-03-28 08:57:47 · 1253 阅读 · 0 评论 -
Vue.js 对接天气 API 实战:打造实时天气查询功能
Vue.js 与第三方 API 的对接方法异步请求处理与状态管理数据格式化与 UI 渲染技巧生产环境优化策略添加单元测试确保 API 调用稳定使用 Vuex 管理全局状态添加加载动画提升用户体验实现自动刷新功能(如每 15 分钟更新一次)空气质量数据生活指数(如紫外线指数、穿衣建议)天气图表展示语音播报功能通过合理设计和性能优化,您可以打造出专业级的天气查询应用。到这里,这篇文章就和大家说再见啦!原创 2025-03-27 11:18:30 · 1711 阅读 · 0 评论 -
虚拟 DOM Diff 算法揭秘:Vue 3 的 Patch 过程详解
虚拟DOM与Diff算法的核心价值原创 2025-03-27 09:07:38 · 1140 阅读 · 0 评论 -
Vue3 中的 Watch 竟能 “暂停”!这招让复杂场景开发效率翻倍
掌握 Watch 的暂停技巧,相当于为你的响应式系统装上了 “智能开关”。这种细粒度控制能力,在复杂交互场景、性能优化等方面具有重要价值。建议在项目中针对数据加载、表单验证等高频场景进行实践,体验开发效率的质的飞跃!拓展思考:你在哪些场景中遇到过需要暂停监听的需求?欢迎评论区分享实战经验!到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-03-21 10:19:16 · 986 阅读 · 0 评论 -
Vue 项目中使用 路由守卫 实现路由权限控制
文件的主要功能是在路由跳转前进行权限验证,它会检查用户是否登录、是否有权限访问目标页面等。以下是== -1) {next();} else {// 判断当前用户是否已拉取完user_info信息store// 根据roles权限生成可访问的路由表// 动态添加可访问路由表// hack方法 确保addRoutes已完成});})});});} else {// 没有token== -1) {原创 2025-03-13 09:44:17 · 954 阅读 · 0 评论 -
彻底掌握 Vue 组件通信:事件总线封装与最佳实践
家人们,大家好!今天分享一篇文章给大家!要是文章对你有帮助,激发了你的灵感,求个啦~后续还有超多惊喜,别错过!原创 2025-03-12 14:07:07 · 861 阅读 · 0 评论 -
Vue 使用异步编程:Promise / Async/Await
假设我们要在 Vue 组件里发送一个异步的 HTTP 请求来获取数据。为了模拟这个请求,我们可以使用setTimeout函数来模拟延迟响应。是基于Promise的语法糖,它能让异步代码看起来更像同步代码,提高代码的可读性。我们继续使用上面的异步请求场景。Promise:是 JavaScript 中处理异步操作的基础,通过thencatch和finally方法可以方便地处理异步操作的结果。:是基于Promise的语法糖,能让异步代码更像同步代码,提高代码的可读性和可维护性。在 Vue 组件中,原创 2025-03-12 13:55:46 · 1931 阅读 · 0 评论 -
探究 Vue2 中 Mixin 的应用场景与原理以及对比 Vue3 Hook
Vue3 引入了组合式 API(Hook),它允许开发者以函数的形式组织逻辑。<template><div></div>// 定义一个 Hookreturn {count,increment</script>Vue2 Mixin 是 Vue2 中实现代码复用和逻辑分离的重要手段,通过合并选项的方式为组件添加功能。然而,它存在命名冲突、数据来源不明确等问题。原创 2025-03-12 10:57:54 · 922 阅读 · 0 评论 -
深入探究 Vue $set 的应用场景与原理
set是 Vue 响应式系统的重要补充,主要用于解决动态属性和数组索引的更新问题。在 Vue 3 中,其适用场景有所减少,但仍需掌握其原理以应对复杂数据结构。合理使用$set可确保视图及时更新,提升用户体验。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-03-12 10:37:13 · 1401 阅读 · 0 评论 -
探索 Vue3 新特性:Composition API 如何提升开发效率
Vue3 的 Composition API 通过解决 Vue2 中开发面临的逻辑复用困难和代码组织混乱等问题,为开发者提供了更高效的开发方式。其逻辑复用的便利性、代码组织的优化以及更好的类型支持,都使得我们能够更快速、更可靠地构建复杂的 Vue 应用。随着 Vue3 的广泛应用,掌握 Composition API 将成为前端开发者提升竞争力的必备技能。在实际项目中,不妨尝试使用 Composition API,体验它为开发效率带来的显著提升。到这里,这篇文章就和大家说再见啦!原创 2025-03-05 13:50:17 · 1122 阅读 · 0 评论 -
vue使用本地缓存的深入探究
是一个用于 Vuex 的插件,它可以将 Vuex 的状态持久化到本地存储(如等)。这样,即使页面刷新或关闭后重新打开,Vuex 的状态仍然可以保持不变。在 Vue 开发中,本地缓存是一项非常重要的技术,它可以提高应用的性能和用户体验。和提供了简单易用的客户端存储方式,适用于缓存简单的数据和临时数据。而则是一个强大的 Vuex 插件,可以帮助我们实现 Vuex 状态的持久化,适用于单页面应用和需要跨页面共享状态的场景。在实际开发中,我们可以根据具体的需求选择合适的本地缓存方式,以达到最佳的效果。原创 2025-02-28 13:44:45 · 1516 阅读 · 0 评论 -
深入 Vue:封装 WebSocket 实现高效通信
通过上述步骤,我们成功在 Vue 中封装了 WebSocket,并在组件中实现了其功能的使用。封装 WebSocket 不仅提高了代码的复用性,还使代码结构更加清晰,易于维护。在实际项目中,你只需将替换为真实的 WebSocket 服务器地址,就能快速搭建起实时通信功能。希望本文能帮助你在 Vue 项目中更好地运用 WebSocket,实现高效的实时通信。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。原创 2025-02-24 14:32:45 · 1830 阅读 · 0 评论 -
Vue 透传 Attributes:提升组件复用性与灵活性
透传 Attributes 指的是当一个组件没有在props或emits选项中声明的属性或事件监听器,会自动透传到该组件的根元素上。简单来说,就是父组件传递给子组件的属性,如果子组件没有显式地接收,这些属性会直接应用到子组件的根元素上。Vue 的透传 Attributes 机制为组件开发提供了极大的便利,它允许属性和事件监听器在组件嵌套层级中自动传递,减少了代码的冗余,提高了组件的复用性和灵活性。原创 2025-02-20 14:15:10 · 1107 阅读 · 0 评论 -
Vue 中 KeepAlive 的使用:提升应用性能与用户体验
KeepAlive是 Vue 中一个非常实用的组件,它可以有效地缓存组件实例,减少组件的重复创建和销毁,提升应用的性能和用户体验。通过合理使用includeexcludemax等属性,以及结合 Vue Router 进行路由组件的缓存控制,我们可以更好地发挥KeepAlive的优势。同时,在使用过程中要注意缓存组件的数据更新和事件监听问题,确保应用的稳定性和正确性。掌握了KeepAlive的使用方法,能够让我们在开发 Vue 应用时更加得心应手。到这里,这篇文章就和大家说再见啦!原创 2025-02-20 11:25:30 · 790 阅读 · 0 评论 -
掌握 Vue 常见指令,开启高效开发之旅,以及自定义指令
Vue 中的常见指令为开发者提供了强大且便捷的工具集,借助它们可以轻松实现数据绑定、条件渲染、列表渲染、事件处理等功能。合理运用这些指令,能够构建出高效、灵活且交互性强的前端应用。同时,自定义指令功能让开发者可以根据项目的具体需求进行个性化扩展。希望开发者们在实际开发中熟练掌握并灵活运用这些指令,不断提升开发效率和应用质量。原创 2025-02-20 10:30:46 · 1038 阅读 · 0 评论 -
Vue 3 中组件通信的多种方式及应用场景props和emits
Vue 3 提供了丰富的组件通信方式,每种方式都有其独特的优势和适用场景。props和emits适用于父子组件间的简单通信;事件总线适合非父子组件间的灵活通信;Vuex 用于大型项目的状态管理和组件间数据共享;provide和inject则能方便地实现跨层级组件的数据传递。开发者在实际项目中应根据具体需求选择合适的通信方式,以实现组件间的高效协作和数据交互。同时,我特别期待与你交流,你在 Vue 3 组件通信中遇到过哪些问题?或者你有什么独特的使用经验?原创 2025-02-10 16:29:05 · 737 阅读 · 0 评论 -
Vue 3.5 版本发布:响应式系统优化,性能飞升与内存锐减 56%
Vue 3 的推出更是带来了一系列重大改进,而最新发布的 Vue 3.5 版本,在响应式系统方面进行了深度优化,宣称性能大幅提升且内存使用减少 56%。页面的加载速度明显加快,用户在进行商品筛选、加入购物车等操作时,界面响应更加流畅,同时内存使用量大幅减少,系统的稳定性和性能得到了显著提升。从开发者社区的反馈来看,Vue 3.5 的响应式系统优化得到了广泛的认可。一些开发者提到,以前在处理大规模数据时需要进行复杂的性能优化,而现在使用 Vue 3.5 可以更专注于业务逻辑的实现,减少了性能优化的工作量。原创 2025-02-10 13:52:21 · 522 阅读 · 0 评论 -
深入剖析 Vue 2 和 Vue 3 中 v-for 与 v-if 的使用
v-for优先级高于v-if,同时使用可能导致性能问题。建议使用计算属性过滤数据,避免不必要的渲染。原创 2025-02-18 15:44:57 · 1885 阅读 · 0 评论