<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>前端 on Somnia</title><link>https://kkbt0.github.io/Somnia/tags/%E5%89%8D%E7%AB%AF/</link><description>Recent content in 前端 on Somnia</description><generator>Hugo</generator><language>zh-CN</language><managingEditor>0@ftls.xyz (恐咖兵糖)</managingEditor><webMaster>0@ftls.xyz (恐咖兵糖)</webMaster><copyright>© 2026 恐咖兵糖.</copyright><lastBuildDate>Wed, 01 Jan 2025 09:00:00 +0800</lastBuildDate><atom:link href="https://kkbt0.github.io/Somnia/tags/%E5%89%8D%E7%AB%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>Alpine.js 从入门到精通 3 全局与其他</title><link>https://kkbt0.github.io/Somnia/docs/alpine.js/alpinejs3/</link><pubDate>Wed, 01 Jan 2025 09:00:00 +0800</pubDate><author>0@ftls.xyz (恐咖兵糖)</author><guid>https://kkbt0.github.io/Somnia/docs/alpine.js/alpinejs3/</guid><description>&lt;h2 id="三全局-globals"&gt;三、全局 Globals&lt;/h2&gt;
&lt;p&gt;Alpine.js 提供了一些全局方法和对象，可以在任何地方使用。&lt;/p&gt;
&lt;h3 id="1-alpinedata-可复用数据逻辑"&gt;1. Alpine.data() 可复用数据逻辑&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;解读&lt;/strong&gt;：&lt;code&gt;Alpine.data()&lt;/code&gt; 用于定义可复用的数据逻辑，类似于 Vue 的 &lt;code&gt;setup()&lt;/code&gt; 或 React 的自定义 Hook。&lt;/p&gt;</description></item><item><title>Alpine.js 从入门到精通 2 魔法属性</title><link>https://kkbt0.github.io/Somnia/docs/alpine.js/alpinejs2/</link><pubDate>Wed, 01 Jan 2025 08:00:00 +0800</pubDate><author>0@ftls.xyz (恐咖兵糖)</author><guid>https://kkbt0.github.io/Somnia/docs/alpine.js/alpinejs2/</guid><description>&lt;h2 id="二魔法属性-magic-properties"&gt;二、魔法属性 Magic Properties&lt;/h2&gt;
&lt;p&gt;Alpine.js 提供了一些以 &lt;code&gt;$&lt;/code&gt; 开头的魔法属性，可以在组件中直接访问。&lt;/p&gt;
&lt;h3 id="1-el-当前元素"&gt;1. $el 当前元素&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;解读&lt;/strong&gt;：&lt;code&gt;$el&lt;/code&gt; 指向当前 Alpine 组件的根 DOM 元素。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;示例代码&lt;/strong&gt;：&lt;/p&gt;



&lt;div class="astro-code astro-code-themes chroma " style="overflow-x: auto;"
 data-language="html"&gt;
 &lt;pre&gt;&lt;code&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;x-data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;{}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;console.log($el)&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;查看根元素&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="na"&gt;click&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;$el.style.backgroundColor = &amp;#39;yellow&amp;#39;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;改变背景&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
 &lt;span class="language ps-1 pe-3 text-sm bg-muted text-muted-foreground rounded-bl"&gt;html&lt;/span&gt;
 &lt;button class="copy text-muted-foreground p-1 box-content border rounded-lg bg-card" aria-label="Copy code"
 data-code="&amp;lt;div x-data=&amp;#34;{}&amp;#34;&amp;gt;
 &amp;lt;button @click=&amp;#34;console.log($el)&amp;#34;&amp;gt;查看根元素&amp;lt;/button&amp;gt;
 &amp;lt;button @click=&amp;#34;$el.style.backgroundColor = &amp;#39;yellow&amp;#39;&amp;#34;&amp;gt;改变背景&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;" onclick="
 navigator.clipboard.writeText(this.dataset.code);
 this.classList.add('copied');
 setTimeout(() =&gt; this.classList.remove('copied'), 2000)
 "&gt;
 &lt;div class="ready"&gt;
 &lt;svg class="size-5"&gt;
 &lt;use href='https://kkbt0.github.io/Somnia/icons/main.svg#clipboard' /&gt;
 &lt;/svg&gt;
 &lt;/div&gt;
 &lt;div class="success hidden"&gt;
 &lt;svg class="size-5"&gt;
 &lt;use href='https://kkbt0.github.io/Somnia/icons/main.svg#file-check' /&gt;
 &lt;/svg&gt;
 &lt;/div&gt;
 &lt;/button&gt;
 
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;适用范围&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>Alpine.js 从入门到精通 1 指令</title><link>https://kkbt0.github.io/Somnia/docs/alpine.js/alpinejs1/</link><pubDate>Wed, 01 Jan 2025 07:00:00 +0800</pubDate><author>0@ftls.xyz (恐咖兵糖)</author><guid>https://kkbt0.github.io/Somnia/docs/alpine.js/alpinejs1/</guid><description>&lt;p&gt;Alpine.js 是一个轻量级的 JavaScript 框架，它借鉴了 Vue.js 和 Angular 的思想，但更加精简，可以直接在 HTML 中通过指令来管理状态和行为，非常适合需要少量交互的静态网站或增强渐进式应用。&lt;/p&gt;</description></item></channel></rss>