<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[笔记、经验、日常分享]]></title><description><![CDATA[专注于web、职业教育板块]]></description><link>https://blog.youkuaiyun.com/sky6862</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sky6862]]></copyright><item><title><![CDATA[AI时代快速学编程语言的陷阱（以Python为例）]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/161492751</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/161492751</guid><author>sky6862</author><pubDate>Thu, 28 May 2026 20:25:23 +0800</pubDate><description><![CDATA[AI让你3天写出能跑的代码，也让你3个月后看不懂自己的代码——如果你还觉得那是‘学习'.AI是学习Python的强力加速器，但前提是你主动制造“反脆弱的学习缺口”——那些你亲自掉进去又爬出来的坑，才是真正的老师。  ]]></description><category></category></item><item><title><![CDATA[Tailwind CSS：从“原子地狱”到“真香”——一份避免过度设计的工程师指南]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/152135774</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/152135774</guid><author>sky6862</author><pubDate>Fri, 26 Sep 2025 21:26:26 +0800</pubDate><description><![CDATA[Tailwind CSS 使用指南：避免过度设计]]></description><category></category></item><item><title><![CDATA[微信小程序开发中CSS书写常见问题及最佳实践]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/145800545</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/145800545</guid><author>sky6862</author><pubDate>Sat, 22 Feb 2025 20:44:34 +0800</pubDate><description><![CDATA[在微信小程序中，存在一些CSS选择器的限制和特殊性。如后代选择器（如 view button）在微信小程序中可能无法按预期工作，我设置width改变按钮的默认宽度效，而更具体的选择器（如 view button.btn）则可以正常使用。]]></description><category></category></item><item><title><![CDATA[Vue 3 数组修改：响应式更新常见问题与解决方案]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/145790071</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/145790071</guid><author>sky6862</author><pubDate>Sat, 22 Feb 2025 09:11:45 +0800</pubDate><description><![CDATA[Vue 3 中数组修改的响应式处理，采用 reactive 和 ref API 以及数组原生方法等技术，解决了非响应式操作导致视图更新失败的问题，确保数组变更能够高效、准确地反映到界面上。]]></description><category></category></item><item><title><![CDATA[使用nvm安装node后提示node、npm不是内或外部命令的解决办法]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/140738224</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/140738224</guid><author>sky6862</author><pubDate>Sat, 27 Jul 2024 17:25:16 +0800</pubDate><description><![CDATA[用nvm切换了node的版本，提示node,npm不是内部或外部的问题及解决办法 ]]></description><category></category></item><item><title><![CDATA[Vue3中VueRouter基本用法及与Vue2中路由使用差异解析]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139707371</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139707371</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 19:54:20 +0800</pubDate><description><![CDATA[Vue Router 在 Vue3 中被重写，使用了 Vue3 的 Composition API。使用上跟Vue2 相比有些不同，需要注意。Vue Router 在 Vue3 中被重写，使用了 Vue3 的 Composition API。这意味着你可以在任何组件中使用。Vue3 中的 Vue Router 对 Vue2 的 API 进行了一些更改，例如，Vue3 支持异步组件，这意味着你可以在路由配置中直接使用动态。来分别获取 router 实例和当前路由。]]></description><category></category></item><item><title><![CDATA[Vue 3 中的状态管理：使用 reactive 函数实现组件间通信和状态管理]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139706888</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139706888</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 19:18:13 +0800</pubDate><description><![CDATA[在 Vue 3 中，使用 reactive 函数可以创建一个响应式对象，从而实现组件间的通信和状态管理。遵循这些规则可以确保状态管理的正确性和可维护性。这样，就可以在多个组件中共享和复用。]]></description><category></category></item><item><title><![CDATA[Vue3 中 props 与 emit 用法]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139706743</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139706743</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 18:59:51 +0800</pubDate><description><![CDATA[在 Vue3 中，`props` 和 `emit` 的用法有所改变，主要的变化在于它们现在都通过 `setup` 函数来访问和使用。]]></description><category></category></item><item><title><![CDATA[Vue3 中 setup 函数与 script setup 用法总结]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139706608</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139706608</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 18:48:34 +0800</pubDate><description><![CDATA[setup函数是一个新的组件选项，它作为在组件内使用 Composition API 的入口。是 Vue 3.2 引入的一项新特性，它提供了一种更简洁的方式来编写 Vue 组件。是两种新引入的编写组件的方式，它们都是 Composition API 的一部分。标签并不兼容，你不能在同一个组件中同时使用两者。script setup我们可以直接定义和导出组件选项，无需包装在。被解析后立即调用，但在 DOM 渲染之前。同时script setup还有一些其他的规则和限制。]]></description><category></category></item><item><title><![CDATA[Vue3新特性指南:探索新增指令、内置组件和改进]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139706439</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139706439</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 18:37:50 +0800</pubDate><description><![CDATA[Vue3引入了许多新特性和改进,包括新增指令、内置组件以及Composition API、响应式系统的改进和更好的TypeScript支持等。通过学习和运用这些新特性,可以更高效、更灵活地构建现代Web应用。本文提供了这些新特性的概述和示例代码,帮助开发者快速上手Vue3。Vue.js是一款流行的JavaScript框架,用于构建现代Web应用。Vue3是Vue.js的最新版本,引入了许多新特性和改进。]]></description><category></category></item><item><title><![CDATA[Vue3 生命周期函数及其与Vue2的对比总结]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139706118</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139706118</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 18:08:15 +0800</pubDate><description><![CDATA[在 Vue3 中，你也可以使用新的生命周期函数 onRenderTracked 和 onRenderTriggered，它们可以帮助你跟踪和调试组件的渲染。Vue3 继续保留了 Vue2 的生命周期钩子，但在 Composition API（setup 函数）中，它们被改为了一组导入函数。与 Vue2 相比，Vue3 的生命周期函数提供了更好的类型支持和复用性。它们更加灵活，可以在组件之间共享和复用代码，这是在 Vue2 中无法做到的。在 Vue3 中，所有的生命周期函数都应在 setup 函数中使用。]]></description><category></category></item><item><title><![CDATA[Vue3 和 Vue2 对比分析及示例代码解析（初级）]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139705975</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139705975</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 17:56:36 +0800</pubDate><description><![CDATA[Vue3 中提供了一系列的生命周期钩子，如 onMounted、onUpdated 和 onUnmounted，这些钩子在 setup 函数内部使用。Vue3 和 Vue2 的主要区别在于 Vue3 引入了 Composition API，这是一种新的组织和复用代码的方式。Vue3 使用 ref 和 reactive 来创建响应式数据，而 Vue2 中则是在 data 函数中返回一个对象。Vue3 的方法可以直接返回，而不需要像 Vue2 那样放在 methods 对象中。]]></description><category></category></item><item><title><![CDATA[Vue 3 的常用响应式 API 总结]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139705806</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139705806</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 17:47:56 +0800</pubDate><description><![CDATA[在vue3.x版本中，setup函数就是vue3 组合式API的入口，换句话说就是在setup中的写的代码，就是组合式API 的写法。下面总结常用的与响应式相关的api, 帮助您在 Vue 3 中创建响应式应用程序。更多Vue3 API请参考官网：https://cn.vuejs.org/api/]]></description><category></category></item><item><title><![CDATA[Vue 3 的 setup 函数使用及避坑指南]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139705698</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139705698</guid><author>sky6862</author><pubDate>Sat, 15 Jun 2024 17:38:34 +0800</pubDate><description><![CDATA[Vue 3 的 setup 函数是 Vue 3 Composition API 的核心部分，它使得代码的复用和组织变得更加简单。]]></description><category></category></item><item><title><![CDATA[Vue 3 中的 toRef 和 toRefs 函数]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139418587</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139418587</guid><author>sky6862</author><pubDate>Mon, 03 Jun 2024 16:32:44 +0800</pubDate><description><![CDATA[函数是 Vue 3 中的两个非常有用的函数，它们可以帮助我们更好地管理组件中的响应式数据，并且可以提高组件的性能和用户体验。在使用这两个函数时，我们需要注意的是，它们只能将一个响应式对象的属性转换为引用，而不能将一个普通对象的属性转换为引用。但是，当我们直接在模板中使用这些属性时，会有一个问题：当这些属性的值发生变化时，组件将会重新渲染，即使其他属性的值没有发生变化。函数用于将一个响应式对象的属性转换为引用。函数的应用场景是在组件中使用响应式对象的属性时，尤其是在一个组件中需要使用多个响应式对象的属性时。]]></description><category></category></item><item><title><![CDATA[react中怎么为props设置默认值]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/139061882</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/139061882</guid><author>sky6862</author><pubDate>Mon, 20 May 2024 12:07:46 +0800</pubDate><description><![CDATA[在react中可以通过props来实现父子组件之间的数据传递。有些时候，需要给props一个默认值，当在使用组件的时候如果没有给数据，可以显示默认数据，让用户体验更好。哪么在react中，在class组件或函数式组件中应该如何为props指定默认值呢？]]></description><category></category></item><item><title><![CDATA[React useEffect Hook: 理解和解决组件双重渲染问题]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/138869958</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/138869958</guid><author>sky6862</author><pubDate>Tue, 14 May 2024 21:00:40 +0800</pubDate><description><![CDATA[useEffect运行了两次，并且你正在使用React 18或更高版本的严格模式（Strict Mode），这可能是因为在开发模式下，React会故意两次调用生命周期方法和函数组件来帮助发现副作用中的问题。运行两次并不一定是一个问题，除非它导致了不必要的副作用，如额外的API调用等。：在生产构建中，这个行为不会发生，它只是在开发模式下帮助你发现潜在的问题。：确保你的副作用函数中没有导致组件状态更新的操作，这可能会触发额外的渲染。：如果你确定你的应用没有副作用相关的问题，你可以从你的应用中移除。]]></description><category></category></item><item><title><![CDATA[React Router 路由配置数组配组持久化]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/138327538</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/138327538</guid><author>sky6862</author><pubDate>Mon, 29 Apr 2024 22:18:52 +0800</pubDate><description><![CDATA[在一些特定场景下,你可能需要将路由配置数组进行持久化,例如从后端动态加载路由配置或根据用户权限动态生成路由配置。这时,持久化路由配置数组就很有用,可以避免每次应用启动时重新获取或计算路由配置。需要注意的是,如果你的路由配置发生变化,你需要更新持久化存储中的数据。通过这种方式,你可以在应用程序启动时从持久化存储中恢复路由配置数组,从而避免每次都重新获取或计算路由配置。在应用程序启动时,你可以从持久化存储中读取序列化的路由配置数据,并使用。你可以使用任何持久化方案来存储序列化后的路由配置数据,例如。]]></description><category></category></item><item><title><![CDATA[Redux Toolkit 中持久化路由配置数组的实践指南]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/138327461</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/138327461</guid><author>sky6862</author><pubDate>Mon, 29 Apr 2024 22:15:51 +0800</pubDate><description><![CDATA[可以将路由配置数组保存到 Redux Toolkit 的 store 中,并使用 Redux Persist 持久化到本地存储中。每次应用程序启动时,你都可以从本地存储中恢复路由配置数据,从而避免重复获取或计算路由配置。需要注意的是,如果你的路由配置发生变化,你需要相应地更新 Redux store 中的路由配置数据。最后,你可以在应用程序中使用 Redux store 中的路由配置数据来渲染应用程序。在应用程序启动时,你可以从持久化存储中读取序列化的路由配置数据(如果有的话),使用。]]></description><category></category></item><item><title><![CDATA[Redux Toolkit 与 Redux Persist 结合:路由状态无法序列化的解决之道]]></title><link>https://blog.youkuaiyun.com/sky6862/article/details/138326948</link><guid>https://blog.youkuaiyun.com/sky6862/article/details/138326948</guid><author>sky6862</author><pubDate>Mon, 29 Apr 2024 21:55:48 +0800</pubDate><description><![CDATA[无论采用哪种解决方案,关键是确保路由状态能够正确地序列化和反序列化,避免出现无法持久化或加载状态的问题。Redux Toolkit 虽然简化了 Redux 的使用,但在处理路由状态序列化问题时,仍需要采取类似于普通 Redux 的方式进行处理。如果你不需要持久化路由状态,可以在 Redux Persist 的配置中排除相关的 reducer。如果你需要持久化路由状态,你可以为路由状态定义自定义的序列化和反序列化函数,类似于处理普通 Redux 中的情况。函数,具体做法取决于你的路由状态结构。]]></description><category></category></item></channel></rss>