2026年4月30日 星期四

抓取 dom 標籤的正則

// 抓取所有標籤 

/<!([^]{0,}?)>|<([a-z][^]{0,}?)(?:\s[^]{0,}?|)([\/]?)>|<\/([a-z][^]{0,}?)>/sg

-------------------------------

// 抓取有 attr 的標籤 

// 可以避免 <script> 內容的干擾

// 先試圖抓取有問題的標籤 <script>...</script> 

/<script(|\s.*?)>.*?<\/script>|(?<=<[^/][^\/>\s]+)(\s[^\/>]+)(?=\/?>)/gs; 

 

javascript 正則需要跳脫的字元

 . ^ $ * + ? ( ) [ ] { } | \ /

2026年4月10日 星期五

to do

prop 完善 

state ------ objProxy  listener test

view.msg

 ---------------------- 

view.bracket 

tempale.bracket

(注意 html load 順序) 

 ---------------------- 

view.template.setting 完善

 ---------------------- 

view.loader

(注意 html load 順序) 

 ---------------------- 

tempalte 完善 

view.watch

view.loading 測試 

form 測試 

 ----------------------

template static 

 

model.init

model.store 

 

測試 workerMnanger 正不正確 

 ---------------------- 

測試 view compile by server 

 

2026年4月6日 星期一

2026年3月26日 星期四

要注意測試的地方 array.slice()

 array.slice() 會造成 ob 有多個 parent

必須在 [....].set 時候做檢查 data.ob 是否有 parent

若有則返回一個乾淨的 data

array.slice()的結果跟預設不同

內部的 item 指向不同物件 

2026年2月26日 星期四

取代 jsx

https://github.com/developit/htm 

 

取代 jsx

 

使用 htm (最推薦的字串替代方案)

如果你覺得 React.createElement 太難讀,開發者常用的方案是 htm。它利用 ES6 的樣版字串 (Template Literals),讓你能在瀏覽器中直接執行類似 JSX 的語法,完全不需要編譯。

你可以直接透過 CDN 引入,適合快速原型開發:
HTML

<script type="module">
  import { h, render } from 'https://esm.sh/preact';
  import htm from 'https://esm.sh/htm';

  // 初始化 htm
  const html = htm.bind(h);

  function App (props) {
    return html`<h1>Hello ${props.name}!</h1>`;
  }

  render(html`<${App} name="World" />`, document.body);
</script> 

2025年12月25日 星期四

鼻病藥方

114/12/25 

 辛夷散: 4*7,  防風: 1*7,  小青龍湯: 4*7,  魚腥草: 1*7,  白芷: 1*7,  枇杷:1*7,  川貝:??      

 

2025年10月14日 星期二

module 使用 require

 import { createRequire } from 'module';
const require = createRequire((import.meta.url);