<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>原理 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《AI指数级增长时代的产品管理》</title><link>https://channel.meo-ai.com/posts/586</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/586</guid><pubDate>Mon, 30 Mar 2026 05:38:39 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《AI指数级增长时代的产品管理》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23%E4%BA%A7%E5%93%81%E7%AE%A1%E7%90%86&quot; title=&quot;#产品管理&quot;&gt;#产品管理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23AI&quot; title=&quot;#AI&quot;&gt;#AI&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23ClaudeCode&quot; title=&quot;#ClaudeCode&quot;&gt;#ClaudeCode&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91&quot; title=&quot;#敏捷开发&quot;&gt;#敏捷开发&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E5%9E%8B%E4%BC%98%E5%85%88&quot; title=&quot;#原型优先&quot;&gt;#原型优先&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;&lt;br /&gt;本文由Anthropic的Claude Code产品负责人撰写，探讨了AI模型指数级进步如何颠覆传统产品管理范式。作者指出，过去PM依赖&quot;项目开始时确定技术边界&quot;的假设已失效，因为模型能力在项目周期内可能跃升数十倍。新的工作流强调快速实验、原型优先、角色融合和持续迭代，PM的核心价值转向在不确定性中创造清晰度、推动团队大胆设想可能性，并加速产品交付。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;&lt;br /&gt;- &lt;b&gt;传统假设被打破**：过去PM基于&quot;技术能力在项目周期内相对稳定&quot;制定长期路线图，但AI模型能力呈指数级增长（如Claude在16个月内任务处理能力提升41倍），项目初期的技术约束可能在开发中途消失&lt;br /&gt;- **角色边界模糊化**：AI工具让设计师能写代码、工程师做产品决策、PM直接构建原型和评估，产品/设计/工程从线性流程变为高度重叠的协作模式&lt;br /&gt;- **原型优先于文档**：用Claude Code等工具几小时就能做出可演示的原型，团队用Demo代替PRD进行内部验证，错误决策的成本大幅降低&lt;br /&gt;- &lt;/b&gt;&quot;支线任务&quot;文化**：鼓励成员在正式路线图外进行短期自主实验，Claude Code桌面版、AskUserQuestion等热门功能都源自这种探索&lt;br /&gt;- **模型迭代即产品迭代**：每个新模型发布都应触发对已有功能的重新审视，作者建议每天主动测试&quot;可能太难&quot;的任务，当模型能完成时就是产品该升级的信号&lt;br /&gt;- **简单至上原则**：避免为绕过模型限制而设计复杂方案，这些&quot;巧妙&quot;的workaround会在新模型发布后变成技术债务，Claude Code的系统提示词已随模型升级精简了20%&lt;br /&gt;&lt;br /&gt;文章URL：&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://claude.com/blog/product-management-on-the-ai-exponential&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://claude.com/blog/product-management-on-the-ai-exponential&quot;&gt;https://claude.com/blog/product-management-on-the-ai-exponential&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://claude.com/blog/product-management-on-the-ai-exponential&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Claude Code&apos;s Head of Product Cat Wu on AI product management: how to rethink your workflows and roadmaps as model intelligence compounds.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Claude&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Product management on the AI exponential&quot; src=&quot;/static/https://cdn4.telesco.pe/file/Xxfo97I6awl8XRxoz-n2XtA5PKhK3c_mOcfZw2yIe1SqqzJnEcEoQUOaSVY_OS2vDO4SMBFlJdcLXehN5tHN1HnAVChq08jFblnlaSUzCDTlyN_BtybTae3yBvG49754GnZDqPcDvi7BFpuAQFHHBuW371qz9iBPmlzCRVu_i8M-QF6CkhotQclSwQrKcNwzHsVx_pO7Du3s8v2gmzxIY6AZptVH6z3JjmuPEn6oifFBgCR9wfH-Ym4kYgGfrn7pY1UKaNyZXYBP-K6SRTASeFZgbCn_C7Zyvtl0DRorwZ_yiUrYprEZpweS7IrgHeHbNFd5HK_tWvO46Vl-714ypw.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;lazy&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Product management on the AI exponential&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Claude Code&apos;s Head of Product Cat Wu on AI product management: how to rethink your workflows and roadmaps as model intelligence compounds.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #原理 js简史</title><link>https://channel.meo-ai.com/posts/368</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/368</guid><pubDate>Mon, 26 May 2025 00:03:20 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; js简史&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://deno.com/blog/history-of-javascript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://deno.com/blog/history-of-javascript&quot;&gt;https://deno.com/blog/history-of-javascript&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://deno.com/blog/history-of-javascript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;In 30 years, JavaScript went from being a little scripting language to one of the world&apos;s most popular. Here are key moments to show how it has evolved and where it is headed.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Deno&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;A brief history of JavaScript | Deno&quot; src=&quot;/static/https://cdn4.telesco.pe/file/L2Gx5IKBGR0cMreb58Ayj2RiYLjZFL5C2ED57TyKOogBYSb-qORAMflgtpVT-9Yb_Ae7a9agohm3fnI-h_ipgDoMMsSc32S30Qj27J74HgILDXfwCH8-xzUra2vlviymu6FN-xYoGp6PylmUjHkCyfdjjhUpwKd7k3pLlCvEi1Zt9BGxAKBKPUC-Hau_EGasQdq_wLV4mYFjccveGo7UwDqmFMC7nYT1RHYVK_bL-6NcnPbDhYrHJvEIk_Pi6xcGVtFBQBRWT9gBWtGBqVm1nTkhORs5H0OdHqWI1C7A03iSuGgvQow97KJTxOGzfjEuVXXClIO_sYIQ9h92kFn65g.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;lazy&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;A brief history of JavaScript | Deno&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;In 30 years, JavaScript went from being a little scripting language to one of the world&apos;s most popular. Here are key moments to show how it has evolved and where it is headed.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#原理 #React #文章 React Context 并不会造成非必要重新渲染，实际上更严格的说法应该是使用同一个 Provider 的 context 会重新渲染</title><link>https://channel.meo-ai.com/posts/362</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/362</guid><pubDate>Sat, 17 May 2025 05:11:43 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; React Context 并不会造成非必要重新渲染，实际上更严格的说法应该是使用同一个 Provider 的 context 会重新渲染。不推荐的原因更多是 Provider 的嵌套地狱。&lt;br /&gt;关于`父组件重新渲染会导致所有子组件重新渲染`的说法也进行了重新验证，直接将组件引入作为子组件会随着父组件的 state 变化而重新渲染，但是通过 props.children 的形式引入并不会。&lt;br /&gt;&lt;br /&gt;根据这两个特性，就会知道全局状态管理带来的好处，也可以了解为什么很多公司拆分组件并且代码行数有要求。因为子组件越多，如果父组件受控状态时常变化，会导致子组件的重新渲染。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blacksheepcode.com/posts/no_react_context_is_not_causing_too_many_renders&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://blacksheepcode.com/posts/no_react_context_is_not_causing_too_many_renders&quot;&gt;https://blacksheepcode.com/posts/no_react_context_is_not_causing_too_many_renders&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://blacksheepcode.com/posts/no_react_context_is_not_causing_too_many_renders&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;A lot of people are under the impression that context shouldn&apos;t be used to store state, because it&apos;ll cause the entire application tree to re-render. This is a misnomer.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Black Sheep Code&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;No, react context is not causing too many renders&quot; src=&quot;/static/https://cdn4.telesco.pe/file/IVn96JfrPGT75RLRa9pXsrpplemeSYdB3JfPHbLxcKcOKrdHuwcNiSUhj66FqxWdIl10Fp-IWa7f34xIcdeyllNyxUZBkf8tC_FXSIaoDZpPGMROmfwuALP2swWQwQ7PmFKFBU1ic_x9cSoVaDYXc4LqudF-24QpAl4p2KZCS7MsaP-ikXAKE8VCaXic2URKFT92SBtsVm-iu5xje0vHkXWWRQO4GhM_JRpf-P6m_94eEyQvXjXrCkOCMBwF-HiIquPN1T-BxwCGrvIF_mORPsJ6vRRcQR8NcIm68TqTl-oXaFe1Ni1fTK5VKOUqEvOtaWPIfCAROxNln4_S5fa6Ow.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;lazy&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;No, react context is not causing too many renders&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;A lot of people are under the impression that context shouldn&apos;t be used to store state, because it&apos;ll cause the entire application tree to re-render. This is a misnomer.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #原理 生成器函数的解释和妙用</title><link>https://channel.meo-ai.com/posts/361</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/361</guid><pubDate>Sat, 17 May 2025 02:34:13 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; 生成器函数的解释和妙用&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://macarthur.me/posts/generators/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://macarthur.me/posts/generators/&quot;&gt;https://macarthur.me/posts/generators/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://macarthur.me/posts/generators&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;I took a stab at getting more familiar with iterators, iterables, and generators. I think I&apos;m starting to like the ergonomics.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Alex MacArthur&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;I think the ergonomics of generators is growing on me.&quot; src=&quot;/static/https://cdn4.telesco.pe/file/SBU7UxDjRNDzi5XoqaKujyRY1eZ5xxU6BLmqKlFupEH6Rzj4Igj0foN8ZkU5Dp-24_9Bfg7MFX9MsYkwc2cWsq7xyq8p6qY9wf-s2fn1IiodPcOyQCN1FO_teagsRuWrvYVbsEFPwoLr0YwDZz9A9iuiSNrzaWTQ6iB9UFvwtNcCTxrh77vqTj4Hc0GtSNjCm9SY055tSgEZ9v4fAdXZb4VyVtdBp5kExNBIscV6uym4ydvGFMP1alN-nM8zng8AcK2QLDwAvu6pt8KDH--QMGCYxwU2LtjZw6wPoEoT7R4qrsoIs1siQOpe3h8uxuglA3ploKRaf-A3VxIrlMYtLw.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;lazy&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;I think the ergonomics of generators is growing on me.&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;I took a stab at getting more familiar with iterators, iterables, and generators. I think I&apos;m starting to like the ergonomics.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#原理 #文章 理解 Promise 的工作原理对于编写高效且无错误的 JavaScript 代码非常重要</title><link>https://channel.meo-ai.com/posts/355</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/355</guid><pubDate>Sun, 11 May 2025 07:49:49 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 理解 Promise 的工作原理对于编写高效且无错误的 JavaScript 代码非常重要。Promise 通过其内部状态管理和异步处理机制，使得 JavaScript 能够以单线程的方式处理复杂的异步任务。​&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://deepintodev.com/blog/how-promises-work-in-javascript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://deepintodev.com/blog/how-promises-work-in-javascript&quot;&gt;https://deepintodev.com/blog/how-promises-work-in-javascript&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://deepintodev.com/blog/how-promises-work-in-javascript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Your go-to source for deep development insights.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;DeepIntoDev&lt;/div&gt;
  
  
  &lt;div class=&quot;link_preview_description&quot;&gt;Your go-to source for deep development insights.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #原理 js转换字符串并不简单🌚</title><link>https://channel.meo-ai.com/posts/352</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/352</guid><pubDate>Thu, 08 May 2025 04:48:44 GMT</pubDate><content:encoded>&lt;div class=&quot;image-list-container image-list-odd&quot;&gt;
      &lt;button type=&quot;button&quot; class=&quot;image-preview-button image-preview-wrap&quot; popovertarget=&quot;modal-352-0&quot; popovertargetaction=&quot;show&quot; aria-label=&quot;Open image preview: #文章 #原理 js转换字符串并不简单🌚&quot;&gt;
        &lt;img src=&quot;/static/https://cdn5.telesco.pe/file/awu2Cp1udszmcJNeifa-M88yv6YxWR-wrjMQMLEvAMEAnNrdH8NWpPdaxSdyEMBks4mtWSPI7OcSoUZkXopWF0J7DRkFagSXlkeW5_unJUGNU7BhxuzRBRAMRCFN65PzgmjdoIhwVbZjGl16VclwK2ku9DNBktvk0FVIjGhGNeXHFxigpGVGtrBlU7Z1qkJOtRbSJ8qvdK6mDnl8OKQFZgwv6X0SRNLpmwQgadNqm2QnBAcQstKMPMM6h0W_ycBjYqaZYya5X58tpeslt8amItX57bLtliir4E_njkNuiMZdavSPBDJy5qdqY-JY2nuY1LGl9mIZJxRLBG6VTXHVHg.jpg&quot; alt=&quot;#文章 #原理 js转换字符串并不简单🌚&quot; width=&quot;800&quot; height=&quot;274&quot; loading=&quot;eager&quot; /&gt;
      &lt;/button&gt;
      &lt;div class=&quot;modal&quot; id=&quot;modal-352-0&quot; popover=&quot;auto&quot; aria-label=&quot;Image preview&quot;&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__backdrop&quot; popovertarget=&quot;modal-352-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;&lt;/button&gt;
        &lt;button type=&quot;button&quot; class=&quot;modal__close&quot; popovertarget=&quot;modal-352-0&quot; popovertargetaction=&quot;hide&quot; aria-label=&quot;Close image preview&quot;&gt;×&lt;/button&gt;
        &lt;div class=&quot;modal__surface&quot;&gt;
          
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; js转换字符串并不简单&lt;i class=&quot;emoji&quot;&gt;&lt;b&gt;🌚&lt;/b&gt;&lt;/i&gt;。&lt;br /&gt;- 只有  &lt;code&gt;{}.toString.call(v)&lt;/code&gt;  能够处理所有特殊值。​&lt;br /&gt;- 如果不需要 100% 安全且希望代码更简洁，可以使用  String(v) 。​&lt;br /&gt;-   &lt;code&gt;{}.toString.call(v)&lt;/code&gt;  的含义​​ &lt;code&gt;{}.toString.call(v)&lt;/code&gt;  等价于  &lt;code&gt;Object.prototype.toString.call(v)&lt;/code&gt; 。​&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://2ality.com/2025/04/stringification-javascript.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://2ality.com/2025/04/stringification-javascript.html&quot;&gt;https://2ality.com/2025/04/stringification-javascript.html&lt;/a&gt;</content:encoded></item><item><title>#React #原理 #文章 《理解React中父组件（parent）和拥有者组件（owner）的区别来优化上下文（Context）提供者的性能》</title><link>https://channel.meo-ai.com/posts/344</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/344</guid><pubDate>Thu, 01 May 2025 03:54:46 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 《理解React中父组件（parent）和拥有者组件（owner）的区别来优化上下文（Context）提供者的性能》&lt;br /&gt;&lt;br /&gt;1.父组件与拥有者组件的区别&lt;br /&gt;&lt;br /&gt;• 父组件是嵌套结构中包含其他组件的组件，而拥有者组件是实际渲染另一个组件的组件，理解两者的区别是优化React性能的关键。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.React组件更新的三种原因&lt;br /&gt;&lt;br /&gt;• 组件更新可能由自身状态变化、消费的上下文值变化或其拥有者组件重新渲染引起。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.上下文提供者的优化&lt;br /&gt;&lt;br /&gt;• 通过分离状态和上下文提供者到独立的自定义组件中，可以避免不必要的组件重新渲染，从而提高性能。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.自定义上下文提供者的实现&lt;br /&gt;&lt;br /&gt;• 使用&lt;code&gt;children&lt;/code&gt;属性将子组件传递到自定义上下文提供者中，确保只有依赖上下文的组件才会重新渲染。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.优化效果&lt;br /&gt;&lt;br /&gt;• 通过合理的组件结构，可以减少不必要的更新，提高应用性能，而无需依赖显式的记忆化工具。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6.其他好处&lt;br /&gt;&lt;br /&gt;• 这种模式不仅能优化上下文更新，还能使数据流更清晰、支持服务器组件，并且适用于其他优化场景。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://julesblom.com/writing/parent-owners-context&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://julesblom.com/writing/parent-owners-context&quot;&gt;https://julesblom.com/writing/parent-owners-context&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://julesblom.com/writing/parent-owners-context&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Understanding how parent and owner components affect context updates can help you write more performant context providers&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;JulesBlom.com&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Parents &amp;amp; Owners in React: Context Providers | JulesBlom.com&quot; src=&quot;/static/https://cdn4.telesco.pe/file/GQ5v9bHWblGJkb8NIr5IQmoidqiImOPGaQQJt8rP8LaROCxyiMmxuAhe7z8mXSMIiqW4za_ShNkI1LZ8XVRZfVTzxU7AinbmaDTE1tMHPR4gsjnIawWzdkSnAntBsFfqgoEcdXE0ufUCzD5_aDNqEHoOGWmHu3zSbrAAAj0ZZr1Cdu3hAPrHbRrmA7sHTF4458yZtlVHpDF0c5UEMXBR8lDmaj7tkNYdfSrZgEfyG__m1wIedWv2j4A3zkg4x2RFytE3mCR-1fKgrPNx5UoCyiSmvAUrNbbkMrxkqrUGrrQ7p_Ho2yMD7INTNqXfFeQoFZYBlWqp_6ePKY13W2iO2g.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Parents &amp;amp; Owners in React: Context Providers | JulesBlom.com&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Understanding how parent and owner components affect context updates can help you write more performant context providers&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#React #原理 #文章 子组件的  useEffect  会在父组件的  useEffect  之前执行，这是由于 React 的深度优先遍历算法</title><link>https://channel.meo-ai.com/posts/341</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/341</guid><pubDate>Thu, 01 May 2025 03:46:45 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 子组件的  useEffect  会在父组件的  useEffect  之前执行，这是由于 React 的深度优先遍历算法。​&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://frontendmasters.com/blog/react-internals-which-useeffect-runs-first/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://frontendmasters.com/blog/react-internals-which-useeffect-runs-first/&quot;&gt;https://frontendmasters.com/blog/react-internals-which-useeffect-runs-first/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://frontendmasters.com/blog/react-internals-which-useeffect-runs-first&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;It&apos;s not particularly obvious, but a child&apos;s useEffect will run before a parent&apos;s will. Let&apos;s look at why.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;master.dev&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;React Internals: Which useEffect runs first?&quot; src=&quot;/static/https://cdn4.telesco.pe/file/hZvKgt43BnNCWY_Z-eE8vuDmuOyQ7KXTipVqOM-0nDaRE1O9DZEJ9xAHkcwVzf89tiLyFF3wRGHkY2Z0QJuvHw_R7t4TKB3YPBSuXk3KrT7xH-1_koc_mBkhkPn03pEMI39DZx3l7xc874tuiuY0P9nOAKuP7YE1nZwxbhvhTqQpqEMuIOnea9O_7Lka8qdweCaXlTQxjee7Irxao_9EgTvXaEDAu8LxKx5-zdVLZhJ-k8LJB3cq6LAP7Gd4xP_jXmH9b8PMLMZaLsDRbiStabKkFc-wpqv3b7Pe7fdosI3FyRKxvja8i4ZmlQTW4yZl7CeXpQ32tVyhnMLs-heDTA.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;React Internals: Which useEffect runs first?&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;It&apos;s not particularly obvious, but a child&apos;s useEffect will run before a parent&apos;s will. Let&apos;s look at why.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#React #原理 #文章 深入了解系列</title><link>https://channel.meo-ai.com/posts/246</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/246</guid><pubDate>Fri, 28 Feb 2025 23:56:22 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 深入了解系列&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.56kode.com/tags/level-up-react/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.56kode.com/tags/level-up-react/&quot;&gt;https://www.56kode.com/tags/level-up-react/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://56kode.com/tags/level-up-react&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;A blog focused on trends, tips, and techniques in web development, with a particular emphasis on React, TypeScript, and JavaScript.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;56Kode&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Tag: level-up-react | 56kode&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;A blog focused on trends, tips, and techniques in web development, with a particular emphasis on React, TypeScript, and JavaScript.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#原理 #文章 7分钟了解函数柯里化</title><link>https://channel.meo-ai.com/posts/237</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/237</guid><pubDate>Tue, 25 Feb 2025 01:11:33 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 7分钟了解函数柯里化&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.yazeedb.com/posts/deeply-understand-currying-in-7-minutes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.yazeedb.com/posts/deeply-understand-currying-in-7-minutes&quot;&gt;https://www.yazeedb.com/posts/deeply-understand-currying-in-7-minutes&lt;/a&gt;</content:encoded></item><item><title>#文章 #原理 为什么TCP需要三次握手</title><link>https://channel.meo-ai.com/posts/196</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/196</guid><pubDate>Fri, 07 Feb 2025 01:08:34 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; 为什么TCP需要三次握手&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes&quot;&gt;https://www.pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://pixelstech.net/article/1727412048-Why-TCP-needs-3-handshakes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Prerequisite KnowledgeFirst, let&apos;s look at the control bits and state machine of TCP, which form the basis for understanding the three-way handshake of TCP.TCP Packet Control BitsThe control bits in t&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;www.pixelstech.net&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Why TCP needs 3 handshakes&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Prerequisite KnowledgeFirst, let&apos;s look at the control bits and state machine of TCP, which form the basis for understanding the three-way handshake of TCP.TCP Packet Control BitsThe control bits in t&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#原理 #文章 【了解】「 WeakRef 如何帮助管理 JavaScript 中的内存 」，里面探讨了很多关于 js 垃圾回收相关的知识，以及 FinalizationRegistry 的使用在对象被清理时回调</title><link>https://channel.meo-ai.com/posts/162</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/162</guid><pubDate>Wed, 08 Jan 2025 09:12:43 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 【了解】「 &lt;a href=&quot;https://www.trevorlasn.com/blog/weakref-javascipt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;WeakRef 如何帮助管理 JavaScript 中的内存&quot;&gt;WeakRef 如何帮助管理 JavaScript 中的内存&lt;/a&gt; 」，里面探讨了很多关于 js 垃圾回收相关的知识，以及 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;FinalizationRegistry&quot;&gt;FinalizationRegistry&lt;/a&gt; 的使用在对象被清理时回调。如果遇到了 js 内存相关的优化再看吧。。&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://trevorlasn.com/blog/weakref-javascipt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Understanding how WeakRef helps manage memory in JavaScript&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;WeakRefs in JavaScript: Explained In Simple Terms&lt;/div&gt;
  
  
  &lt;div class=&quot;link_preview_description&quot;&gt;Understanding how WeakRef helps manage memory in JavaScript&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#原理 #库 `npm create` 的原理以及如何创建一个自己的 `create` 指令</title><link>https://channel.meo-ai.com/posts/112</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/112</guid><pubDate>Wed, 11 Dec 2024 05:48:05 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BA%93&quot; title=&quot;#库&quot;&gt;#库&lt;/a&gt; &lt;a href=&quot;https://www.alexchantastic.com/building-an-npm-create-package&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;`npm create` 的原理以及如何创建一个自己的 `create` 指令&quot;&gt;`npm create` 的原理以及如何创建一个自己的 `create` 指令&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://alexchantastic.com/building-an-npm-create-package&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;A tutorial on building an npm create package.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Alexchantastic&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Building an npm create package — Alex Chan&quot; src=&quot;/static/https://cdn4.telesco.pe/file/p6T5dwmfLUaaDQBd7j2c5dejpP3-ivn5c4A7eav_-3uPYalee0YDbfK4LadEhP9LU79_KR6uohs4rwZgFqW_ZfQ3yzQxX9OREgtmZBP7eEnYGcpR7Ao9k1rVal3yzrXk7yB_WlyLTaCCuTzyzU_BxJm4hTbwxbiiZWoW9QeGlF0vLmU4IBc_40KOC1qWKmgGxX7S7ASUPJGSMVYflZKMQAZ_b2_oafTamRvLh7bBqU7wTTARV-OqJ0bAZdMSDGHWW2sNyXp1RrlODSIq5sSXGRPG7C-Xb0ieVT64uaPxFwE9RjDBH4AWeZnPMZISlz0jccSUfn2sjOa2dx9XPbiGrQ.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Building an npm create package — Alex Chan&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;A tutorial on building an npm create package.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #原理 探讨js继承行为方式的区别</title><link>https://channel.meo-ai.com/posts/98</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/98</guid><pubDate>Mon, 02 Dec 2024 17:25:29 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; 探讨js继承行为方式的区别&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://jsdev.space/inheritance-js/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://jsdev.space/inheritance-js/&quot;&gt;https://jsdev.space/inheritance-js/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://jsdev.space/inheritance-js&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Explore 7 key inheritance techniques in JavaScript, from prototype chains to ES6 classes. Understand each method’s strengths, weaknesses, and ideal use cases.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;JavaScript Development Space&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;Deep Dive into JavaScript Inheritance - 7 Powerful Techniques&quot; src=&quot;/static/https://cdn4.telesco.pe/file/u2e6OftXUrsYGBkw2TXbe7c0PuycGvu-dIt9d4daBpSHu9imu6a-kgwwYqKj9mtfz2UbqALgLFSoVwJ8ocQIjk2h1qEFwR6geO-nfMSRSNQwIWDkDzN3szgySc80oGT2I_6JICKKRfaeZGdSfKOyFvEh80gCrre7-I_xTIIYNt9RlIpHyya1JEVmP1aQpiBmxOp9zPMKdG1Rk-K7giidReUxGkDvUZ10pcVYus6XUJtF3ex4gIUCWELV3bKfHwFIYT1j-j_y35P3NLMwnArqTwd1bBe2tj9h07Knya4nGQBP9yTe8gTw5wEuVw93FpW8ZMWA2hWySe0ZfwH-kbuvCg.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;Deep Dive into JavaScript Inheritance - 7 Powerful Techniques&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Explore 7 key inheritance techniques in JavaScript, from prototype chains to ES6 classes. Understand each method’s strengths, weaknesses, and ideal use cases.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #React 服务端组件的 #原理 ，同时对比了服务端组件和客户端组件的五个不同：</title><link>https://channel.meo-ai.com/posts/83</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/83</guid><pubDate>Tue, 26 Nov 2024 13:07:12 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23React&quot; title=&quot;#React&quot;&gt;#React&lt;/a&gt; 服务端组件的 &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; ，同时对比了服务端组件和客户端组件的五个不同：&lt;br /&gt;1. 包大小&lt;br /&gt;2. 水合过程&lt;br /&gt;3. 组件树渲染&lt;br /&gt;4. 组件生命周期&lt;br /&gt;5. 数据获取&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.tymzap.com/blog/5-differences-between-react-server-components-and-server-side-rendering&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.tymzap.com/blog/5-differences-between-react-server-components-and-server-side-rendering&quot;&gt;https://www.tymzap.com/blog/5-differences-between-react-server-components-and-server-side-rendering&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://tymzap.com/blog/5-differences-between-react-server-components-and-server-side-rendering&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;I’m a software engineer and product maker based in Cracow, Poland. My mission is to create useful products by writing high-quality code and sharing my knowledge throughout the journey.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;Tymzap&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;5 differences between React server components and server-side rendering • Tymek Zapała&quot; src=&quot;/static/https://cdn4.telesco.pe/file/NvzaCR9nqjh2soOLREeLDNQ2Q2c388eYw-1SJB3X0I_2ic8ZHH4ODL8Lyqsmuxzh1AT7V6yQNUkgYv1zj94rV3FeijrGcg-WQ3t2GVUD_v7H6CocL4yhS5xmhTu-cV_vTqEmyJ6-bozwcLbkHxsqec7RrTTtFh5Ek7PpS2o6hnpslSdSacX7w125UQRcSvB4rBVGk7RzJyS7w-gIDonQaOWDxi_dM2aLmcbKlLL9IWD9gA1c7HLnJDjugxKx3iCN2sobnG1fj7iKs5lzYE_XXKKj6X6wbT6BBTE6rJyeVNHcifn8vgvFMA0ndipPq-gdIkKKSOAuVTaTP8F0OVakpg.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;5 differences between React server components and server-side rendering • Tymek Zapała&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;I’m a software engineer and product maker based in Cracow, Poland. My mission is to create useful products by writing high-quality code and sharing my knowledge throughout the journey.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #原理 你真的了解 10 年前出的 ES6 新特性 Symbol 吗？</title><link>https://channel.meo-ai.com/posts/79</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/79</guid><pubDate>Fri, 22 Nov 2024 04:45:32 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; 你真的了解 10 年前出的 ES6 新特性 Symbol 吗？&lt;br /&gt;&lt;br /&gt;背诵的知识点：确保唯一性。&lt;br /&gt;拓展知识点：&lt;br /&gt;1. 对象的临时键（不干扰现有键且不会展示在 &lt;code&gt;Object.keys&lt;/code&gt;的结果和 &lt;code&gt;for..in&lt;/code&gt; 循环中，场景：隐藏某些敏感键值对，比如 API_KEY）。&lt;br /&gt;2. 临时键的值可以通过&lt;code&gt;Object.entries&lt;/code&gt; 读取到。&lt;br /&gt;3. &lt;code&gt;Object.getOwnPropertySymbols()&lt;/code&gt;可以查询 Symbol 键对应的值。&lt;br /&gt;4. &lt;code&gt;Symbol.for()&lt;/code&gt;可以全局注册共享Symbol。&lt;br /&gt;5. &lt;code&gt;Symbol.iterator&lt;/code&gt;可以自定义对象的可迭代方式。&lt;br /&gt;6. &lt;code&gt;Symbol.toPrimitive&lt;/code&gt;可以自定义对象的隐式转换行为。&lt;br /&gt;7. &lt;code&gt;Symbol.species&lt;/code&gt; 可以限制某些继承行为和约束（计划废弃）。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.trevorlasn.com/blog/symbols-in-javascript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://www.trevorlasn.com/blog/symbols-in-javascript&quot;&gt;https://www.trevorlasn.com/blog/symbols-in-javascript&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://trevorlasn.com/blog/symbols-in-javascript&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Deep dive into JavaScript Symbols - what they are, why they matter, and how to use them effectively&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;trevorlasn.com&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Exploring JavaScript Symbols&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Deep dive into JavaScript Symbols - what they are, why they matter, and how to use them effectively&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#原理 #浏览器 #文章 v8  如何在处理动态添加的属性（slow properties）的同时提供快速的属性（fast properties）访问</title><link>https://channel.meo-ai.com/posts/69</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/69</guid><pubDate>Tue, 19 Nov 2024 03:26:08 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%B5%8F%E8%A7%88%E5%99%A8&quot; title=&quot;#浏览器&quot;&gt;#浏览器&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; v8  如何在处理动态添加的属性（slow properties）的同时提供快速的属性（fast properties）访问。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://v8.dev/blog/fast-properties&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://v8.dev/blog/fast-properties&quot;&gt;https://v8.dev/blog/fast-properties&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://v8.dev/blog/fast-properties&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;This technical deep-dive explains how V8 handles JavaScript properties behind the scenes.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;v8.dev&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;Fast properties in V8 · V8&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;This technical deep-dive explains how V8 handles JavaScript properties behind the scenes.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#服务端 #原理 #文章 这篇文章是一个关于 HTTP 协议的深入教程，它从 HTTP/1.1 开始，详细介绍了 HTTP 协议的工作原理，包括 TCP 连接、HTTP 请求和响应的格式、头字段、方法等基本概念</title><link>https://channel.meo-ai.com/posts/53</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/53</guid><pubDate>Tue, 12 Nov 2024 23:57:58 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%9C%8D%E5%8A%A1%E7%AB%AF&quot; title=&quot;#服务端&quot;&gt;#服务端&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; 这篇文章是一个关于 HTTP 协议的深入教程，它从 HTTP/1.1 开始，详细介绍了 HTTP 协议的工作原理，包括 TCP 连接、HTTP 请求和响应的格式、头字段、方法等基本概念。接着，文章深入探讨了 HTTP/2 协议，包括它的帧结构、流多路复用、服务器推送等特性，并且讨论了 HTTP/2 在实际应用中可能遇到的问题和挑战。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for&quot;&gt;https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://fasterthanli.me/articles/the-http-crash-course-nobody-asked-for&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;HTTP does a pretty good job staying out of everyone’s way.If you’re reading this article, there’s a solid chance it was delivered to you over HTTP. Even if you’re reading this from an RSS reader o...&quot;&gt;
  &lt;i class=&quot;link_preview_right_image&quot; style=&quot;background-image:url(&apos;https://cdn4.telesco.pe/file/f3KHZ43NcXSOkedHiv3UCwOy0OPvF_SZjOmFwfUIAXybOLSVtgppQR3sRxKKW2lukiiVPEZ62U_m_JcOrkOZjSgaRnjrFe5jFOjQW9UIM5PPjR6uGu35oZ8HarkMhe-Fqyw9ziMlfFxY3lU_p9PmbSX6gBMebP8thidsMwgaa7jZj86ElyVNkkNP2ID2M2VpiY7LrvwGHHAPsyw05nQ5RyobVcM9UT3Q7nEQk8eeq1ZIGWfwq6lW9_L8KMqI569kIVd1URC1lRQcKcZ1OwUsvhgLwIOweMVK99gJXdSxqsHOckabt6ytqixifnxwoDybzo9ObFDYQzXDFMUUUJeUNA.jpg&apos;)&quot;&gt;&lt;/i&gt;
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;fasterthanli.me&lt;/div&gt;
  
  &lt;div class=&quot;link_preview_title&quot;&gt;The HTTP crash course nobody asked for&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;HTTP does a pretty good job staying out of everyone’s way.&lt;br /&gt;If you’re reading this article, there’s a solid chance it was delivered to you over HTTP. Even if you’re reading this from an RSS reader o...&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #开源 #原理 关于现代各种鉴权方式讲解</title><link>https://channel.meo-ai.com/posts/52</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/52</guid><pubDate>Tue, 12 Nov 2024 23:52:06 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E6%BA%90&quot; title=&quot;#开源&quot;&gt;#开源&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt; 关于现代各种鉴权方式讲解。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/logto-io/auth-wiki&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://github.com/logto-io/auth-wiki&quot;&gt;https://github.com/logto-io/auth-wiki&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://github.com/logto-io/auth-wiki&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;A comprehensive collection of articles, tutorials, and resources about authentication, authorization, and identity management. - logto-io/auth-wiki&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;GitHub&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;GitHub - logto-io/auth-wiki: A comprehensive collection of articles, tutorials, and resources about authentication, authorization…&quot; src=&quot;/static/https://cdn4.telesco.pe/file/OpNQLAYAlohjRJV35t_wl29l1bDmaAyMpo9tI3Vc_4cAzYnkRTkwcDS6JkuUJITNKqsAHvNiyOuDoHIo-U0rPGui2DYtPtqPYssv9IXPB2D9XfXit5sfgzce2oM6RlT4pIKZy3-chOA9cViz2I43a1impTAxb3s3V50mUbgOxkfPX_Guc_h6Q3nOpwTl_zDcPZUDPtO-_Ceimk65TwcxJxcj5tVWIgpaPKJ0rZ0zIsj8A7153vGIzSEdBV-kVEl0Q5MphjFAxFqFzJWygIeiaJK7_AS0ECqhZrGQRy4FSnR7UM1Y5MEEoT0fs4nTFYmSSBo2J8op2BnRoss3c9PHjw.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;GitHub - logto-io/auth-wiki: A comprehensive collection of articles, tutorials, and resources about authentication, authorization…&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;A comprehensive collection of articles, tutorials, and resources about authentication, authorization, and identity management. - logto-io/auth-wiki&lt;/div&gt;
&lt;/a&gt;</content:encoded></item><item><title>#文章 #浏览器 #原理  一篇通过丰富的交互式组件讲解浏览器如何渲染的整个流程</title><link>https://channel.meo-ai.com/posts/51</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/51</guid><pubDate>Tue, 12 Nov 2024 23:49:36 GMT</pubDate><content:encoded>&lt;a href=&quot;/search/result?q=%23%E6%96%87%E7%AB%A0&quot; title=&quot;#文章&quot;&gt;#文章&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E6%B5%8F%E8%A7%88%E5%99%A8&quot; title=&quot;#浏览器&quot;&gt;#浏览器&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%8E%9F%E7%90%86&quot; title=&quot;#原理&quot;&gt;#原理&lt;/a&gt;  一篇通过丰富的交互式组件讲解浏览器如何渲染的整个流程。&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://abhisaha.com/blog/exploring-browser-rendering-process/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://abhisaha.com/blog/exploring-browser-rendering-process/&quot;&gt;https://abhisaha.com/blog/exploring-browser-rendering-process/&lt;/a&gt;</content:encoded></item></channel></rss>