精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

跑分方面,這款 JavaScript 庫在全球框架榜單中的表現比 React 要好得多

開發 前端
Strve 是一個易用、快速、靈活且輕量級的 JavaScript 庫,用于構建用戶界面。基于 tagged template 的 HTML 模板引擎,利用 ES6 的模板字符串來進行模板的書寫,利用瀏覽器的原生的能力進行模板渲染。

2021 年 11 月 左右,Strve 第一個版本發布,社區的反饋大部分是支持,也有少部分小伙伴提出了質疑,這都正常。你只要在社區發布一些作品,就必須接受其他人對你的作品的評價。

當初,開發 Strve 的初衷只是受到 JSX 語法的影響,覺得在 JavaScript 中編寫 HTML 很酷,所以想能不能自己也開發一個前端框架。我最初給自己的目標就是能在 JavaScript 中寫 HTML,然后通過編寫 JavaScript 來改變頁面狀態。經過兩個多周的調研,發現自己在原地打轉。JSX 語法不能直接在瀏覽器運行,你必須通過類似 Babel 這種編譯工具編譯才能運行。所以,我就打算在模版字段串內編寫 HTML。但是,又遇到了另一個問題,如何精確更新 DOM。當時,第一個想法就是利用虛擬 DOM,所以就抽時間來學習前端框架中都是怎么利用虛擬 DOM 來精確更新。不懂得就去網上查資料,然后就記下來。可能有些小伙伴就會問,是什么力量讓你去做可能完成了也沒什么意義的事情。怎么說呢!當時,我就是想要做出點東西來,覺得自己能做出來。至于做出來有什么意義,我沒有多想。有時候我們做一件事情之前,考慮很多未必是好事,這往往會阻礙了我們做事情的腳步。

就這樣,靠著自己的熱情,第一個版本就這么問世了。

有很多小伙伴感覺 Strve 寫法很像lit-html。說實話,開發 Strve 之前,我并不知道這個框架。后來看社區反饋,才到網上查看了有關的資料。雖然寫法像,但并不是它的復制品。就比如 Strve 內部使用的是虛擬 DOM,這時的虛擬 DOM 還只是一個初版,只能說是簡單的比對。

全新的認識

之前有看過我的文章的小伙伴,多多少少會知道 Strve。但是可能也只是停留在知道這個層面上,現在我通過幾點來重新介紹下 Strve。

Strve 是一個易用、快速、靈活且輕量級的 JavaScript 庫,用于構建用戶界面。基于 tagged template 的 HTML 模板引擎,利用 ES6 的模板字符串來進行模板的書寫,利用瀏覽器的原生的能力進行模板渲染。

  • 更容易上手:只要你對 HTML、CSS 和 JavaScript 已經基本熟悉,就可以直接上手。
  • 聲明式渲染:我們可以聲明式地描述最終輸出的 HTML 和 JavaScript 狀態之間的關系,開發者可以更加專注于業務邏輯的開發,不需要過多地關心 DOM 操作的細節。
  • 順滑的用戶體驗:模板字符串來進行模板的書寫,在一些場景中代碼智能提示、代碼格式化方面不是特別友好。所以,我們提供了新的一種編碼方式,我們可以使用 JSX 語法編寫 Strve,提升用戶開發體驗。
  • 性能出色:采用了虛擬 DOM 的模式,虛擬 DOM 使用 diff 算法的方法來計算出真正需要更新的節點,最大限度地減少了 DOM 操作以及 DOM 操作帶來的排版與重繪損耗,從而顯著提高了性能。另外,我們的 JavaScript 庫在全球知名的測評榜單(js-framework-benchmark)上贏得了優秀的成績。
  • 組件化:一個函數就是一個組件,可以根據應用規模任意組合。并且組件特有的 “孤島特性”,使得將虛擬 DOM 樹計算的級別控制在組件級別。
  • 靈活的應用場景:有無構建工具都可以使用,并且可以適配到其他前端框架開發的應用項目中去。
  • 輕量級:壓縮后的文件大小不足 10k。另外,可以根據不同應用場景,選擇不同類型的文件。

想要了解更多關于 Strve 的特性,可以到官方中文文檔中去探索。

https://strvejs.gitee.io/strve-doc-zh。

貼心的優化

2023 年我陸續發布了幾個大的版本,大部分時間都是在優化底層代碼。包括虛擬 DOM 的算法優化、減輕使用 API 時 心智負擔等等優化措施。

下面我們來展開看下。

如果你不打算使用構建打包工具開發項目,而是直接開發。推薦使用全局構建版本,通過 CDN 使用 Strve 時,不涉及“構建步驟”,這使得設置更加簡單。

<script src="https://cdn.jsdelivr.net/npm/strve-js@6.6.6/dist/strve.full.prod.js"></script>
<script>
  const { html, defineComponent } = Strve;

  defineComponent(
    {
      mount: '#app',
    },
    ({ setData }) => {
      let count = 0;

      function add() {
        setData(() => {
          count++;
        });
      }

      return () => html`<h1 onClick=${add}>${count}</h1>`;
    }
  );
</script>

模板字符串來進行模板的書寫,在一些場景中代碼智能提示、代碼格式化方面不是特別友好。所以,我們提供了一種新的編碼方式,我們可以使用 JSX 語法編寫 Strve 應用,這樣就大大提升了用戶開發體驗。

defineComponent(() => {
  const state = {
    msg: 'Hello',
  };
  return () => h1>{state.msg}</h1>;
});

另外,我們底層采用了虛擬 DOM 的模式,虛擬 DOM 使用 diff 算法的方法來計算出真正需要更新的節點,最大限度地減少了 DOM 操作以及 DOM 操作帶來的排版與重繪損耗,從而顯著提高了性能。

Strve 應用程序是由 組件 組成的。一個組件是 UI(用戶界面)的一部分,它擁有自己的邏輯和外觀。組件可以小到一個按鈕,也可以大到整個頁面。

在 Strve 中,組件就是一個函數。

const MyComponent = defineComponent(({ setData }) => {
  let count = 0;

  function add() {
    setData(() => {
      count++;
    });
  }

  return () => (
    <div class='MyComponent'>
      <p>{count}</p>
      <button onClick={add}>MyComponent</button>
    </div>
  );
});

// 復用組件
defineComponent(
  {
    mount: '#app',
  },
  ({ setData }) => {
    let count = 0;

    const add = () => {
      setData(() => {
        count++;
      });
    };

    return () => (
      <div class='App'>
        <p>{count}</p>
        <button onClick={add}>App</button>
        <component $is={MyComponent} />
      </div>
    );
  }
);

Strve 內部的渲染系統是基于虛擬 DOM 構建的,虛擬 DOM (Virtual DOM,簡稱 VDOM) 是一種編程概念,意為將目標所需的 UI 通過數據結構“虛擬”地表示出來,保存在內存中,然后利用 Diff 算法來比對新老數據,將真實的 DOM 與之保持同步。

如何虛擬 DOM 樹過于龐大,使得 Diff 計算時間大于 16.6ms,那么就可能造成性能的卡頓。組件有一個特性就是 ”孤島“。何為“孤島”,孤島就是在 Strve 應用中我們可以理解成一個獨立的模塊。將一個龐大的虛擬 DOM 樹分解成很多獨立的模塊,這樣 Diff 計算時間就會控制在組件級別,大大縮減了計算的時間,提高了性能。

從 API 層面,我們盡可能的貼合易用的特性,將核心 API 縮減為 2 個。分別為defineComponent和setData。框架是需要容易使用的,太多繁瑣的設置或者操作很容易增重心智負擔。

豐富的生態

開發框架單單只有一個核心庫肯定是不夠的,你還需要其他生態工具來加以輔助。

你要有一套用于快速構建項目的命令行工具,也就是說用戶可以通過輸入命令快速搭建項目。CreateStrveApp 是一套用于快速構建 Strve 項目的命令行工具。CreateStrveApp 是使用 Vite 構建的,這是一個新的前端構建工具,可以顯著提升前端開發體驗。它有幾個模版可供選擇:strve、strve-apps、strve-jsx、strve-jsx-apps。

我們開發項目需要跳轉多個頁面,那么就需要路由管理器。StrveRouter 是 Strve 的官方路由管理器。它與 Strve 的核心深度集成,輕松構建單頁應用程序。

另外,我們介紹兩款編譯時工具。BabelPluginStrve是一款 babel 插件,將 HTML 模板字符串轉化為 Virtual Dom。從之前的運行時轉移到編譯時,大幅度提高渲染性能。如果你想使用 JSX 語法,BabelPluginJsxToStrve這款插件是必不可少的,它是一款 babel 插件,將 JSX 轉換為與 Strve 一起使用的標記模板。CreateStrveApp 項目腳手架工具已默認安裝,選擇 strve-jsx 或者 strve-jsx-apps 模版即可。我們使用 CreateStrveApp 搭建完 Strve 項目你會發現,同時安裝了 BabelPluginStrve、BabelPluginJsxToStrve,這是因為我們需要使用 BabelPluginJsxToStrve 將 JSX 轉換為標簽模版,之后再使用 BabelPluginStrve 將標簽模版轉換為 Virtual DOM。

我們最后壓軸的一款生態工具可以說是近期更新力度最大的了。它被稱為獨立運行的可響應性 Strve,由 @vue/reactivity和 strve-js 提供支持的自定義元素 JavaScript 庫。

主要特性有以下幾個:

  • Web Components
  • Hooks
  • Reactivity API
  • Props
  • Emit
  • Slot
  • Styles
  • Automatic registration component
  • Virtual DOM

Strve 結合 Vue 組合式 API 形成了一款新的 JavaScript 庫。只要你熟悉組合式 API,就可快速上手。

// MyComponent.jsx
import { ref, defineComponent, reactive } from 'strve-reactivity';

const MyComponent = defineComponent(() => {
  const items = reactive([
    {
      id: 1,
      tit: 'A',
    },
    {
      id: 2,
      tit: 'B',
    },
  ]);
  const count = ref(4);
  const increase = () => {
    items.unshift({
      id: count.value++,
      tit: 'C',
    });
  };

  return () => (
    <fragment>
      <button onclick={increase}>increase</button>
      <ul>
        {items.map((item) => (
          <li key={item.id}>
            <span>{item.id}</span>
            <span>-</span>
            <span>{item.tit}</span>
          </li>
        ))}
      </ul>
    </fragment>
  );
});

出色的跑分

我們只是口頭說 Strve 性能是非常不錯的,沒有真憑實據那是說不過去的。跑分方面,Strve 在 js-framework-benchmark 中的表現比 React 要好得多。

圖片

https://krausest.github.io/js-framework-benchmark/current.html。

巨人的肩膀

前端框架最近幾年來層出不窮,出現這種情況好嗎?我覺得是個好現象。大家都在為前端社區貢獻自己的力量,使得前端的生態生機勃勃。

大家可能非常討厭跟知名框架比較,可能有些人會說蹭熱度。其實不妨換個角度想想,為什么會比較,是因為要更好。怎么樣才能更好,那只能不斷地優化。那么在這優化的過程中你不光是做出一個 JavaScript 庫或者前端框架,更多的是你可以從中獲得你在平時工作中得不到的東西。比如,對設計一款框架需要考慮哪些方面。作者在設計 API 時為什么會這么設計等等一些非工作業務上的事情。

我開發這款 JavaScript 庫,我是另辟蹊徑嗎?我感覺并不是,我只是學習其他優秀框架中可以借鑒的思想,并按照自己想要的方式去展現它。只有站在巨人的肩膀上才能望得更遠!

責任編輯:姜華 來源: 前端歷劫之路
相關推薦

2012-09-20 09:28:26

PHP程序Web

2012-09-24 11:14:06

PHP編程語言Web開發

2020-08-26 15:31:52

選擇

2023-03-20 07:48:03

2022-09-27 15:23:53

微軟Windows 11Windows 10

2011-07-26 11:07:45

FacebookiPad

2025-11-18 12:16:13

2023-10-26 00:33:51

JS框架React

2010-04-27 15:08:01

2012-07-24 09:00:18

鍵盤Windows 8

2022-10-17 13:33:25

云平臺云計算服務

2022-08-29 14:59:12

深度學習樹的模型神經網絡

2022-05-05 20:57:20

谷歌Chrome瀏覽器

2023-02-15 17:26:11

Java實例化系統

2010-11-02 10:44:12

2012-10-11 10:04:36

網絡能耗思科

2010-08-17 15:21:17

IEFirefoxHTML

2025-06-16 08:00:00

2015-06-24 10:38:53

數據中心災備計劃

2017-01-03 19:12:56

數據中心冷卻機架
點贊
收藏

51CTO技術棧公眾號

日产国产高清一区二区三区| 超碰一区二区三区| 国产精品网站在线观看| 国产精品入口尤物| 国产97免费视频| 在线综合色站| 狠狠久久亚洲欧美专区| 婷婷久久伊人| 国产黄a三级三级看三级| 亚洲精选国产| 最近2019中文字幕第三页视频 | 国内外成人在线| 欧美极品少妇xxxxx| 精品无人区无码乱码毛片国产| 在线免费观看亚洲| 偷拍日韩校园综合在线| 亚洲欧洲一区二区| 日韩一区二区三区不卡| 久久国产精品72免费观看| 久久免费视频网| 中文国语毛片高清视频| 亚州av一区| 日韩精品一区二| 亚洲欧美国产中文| 中文在线8资源库| 亚洲免费视频成人| 亚洲最大色综合成人av| 天堂成人在线| 国产mv日韩mv欧美| 国产综合香蕉五月婷在线| 五月天综合激情| 综合国产精品| 久久精品国产96久久久香蕉| av中文字幕免费观看| 1313精品午夜理伦电影| 欧美精品精品一区| 成人亚洲视频在线观看| 国产自产自拍视频在线观看| 亚洲乱码日产精品bd| 亚洲人久久久| 福利在线播放| 久久精品在这里| 国产伦精品一区二区三区在线 | 欧美变态tickling挠脚心| 欧美三级理论片| 自拍偷拍亚洲视频| 精品国产999| 国产男女免费视频| 欧美男男video| 亚洲免费在线看| 中国一级黄色录像| 毛片av在线| 亚洲国产成人自拍| 无遮挡亚洲一区| 春暖花开成人亚洲区| 国产亚洲成aⅴ人片在线观看 | 亚洲精品成人精品456| 亚洲高清123| 成人在线高清视频| 欧美极品美女视频| 亚洲人成人77777线观看| 91社区在线观看| 国产精品免费久久| 中文字幕99| a视频在线观看免费| 亚洲美女精品一区| 国产美女作爱全过程免费视频| www.在线视频| 亚洲综合视频网| 久久黄色片视频| 深夜成人影院| 欧美日韩一区二区三区在线| 91视频这里只有精品| 91精品麻豆| 日韩女优电影在线观看| 欧美性生交xxxxx| 国产精品视屏| 亚洲免费视频网站| 免费一级特黄3大片视频| 手机亚洲手机国产手机日韩| 欧美成年人视频网站| 国产精选第一页| 久久精品盗摄| 国产日韩在线一区| 高h震动喷水双性1v1| 久久丝袜美腿综合| 在线观看福利一区| 欧美videos另类精品| 狠狠躁天天躁日日躁欧美| 国产成人综合一区| 国产精一区二区| 亚洲国模精品一区| 老司机福利在线观看| 在线中文字幕亚洲| 91成人在线播放| 亚洲专区在线播放| 成人av网站在线| 视频一区免费观看| 羞羞网站在线看| 欧美特级www| а 天堂 在线| 香蕉国产成人午夜av影院| 久久精品在线播放| 亚洲男人的天堂在线视频| 男男成人高潮片免费网站| av资源站久久亚洲| caoporn国产精品免费视频| 一区二区三区日本| 在线观看的毛片| 成人自拍在线| 久久精品成人一区二区三区| 国产剧情在线视频| 国产精品伊人色| 日韩av电影免费观看| 日本大片在线播放| 欧美猛男gaygay网站| 亚洲国产第一区| 自拍日韩欧美| 国产精品手机播放| 视频一区二区三区在线看免费看| 国产欧美一区二区三区沐欲| 国产精品成人久久电影| 91麻豆精品| 伊人久久大香线蕉av一区二区| 精品无码久久久久久久久| 免费人成网站在线观看欧美高清| 久久99精品国产一区二区三区| www久久日com| 欧美精品久久一区| 国产18无套直看片| 久久精品男女| 精品久久精品久久| 九色91在线| 日韩一区二区电影在线| 看黄色录像一级片| 国产成人小视频在线观看| 国产三级视频网站| 伊人久久亚洲影院| 亚洲一区二区自拍| 色网站免费在线观看| 欧美在线999| 久操视频免费看| 亚洲欧美日韩一区在线观看| 国产一区二区不卡视频| 日本孕妇大胆孕交无码| 日韩一卡二卡三卡四卡| 男的操女的网站| 精品一区二区三区免费| 亚洲日本精品| 黄色欧美视频| 视频在线观看一区二区| 一级全黄裸体免费视频| 国产精品久久久久久久久久免费看 | 国产精品麻豆视频| 看欧美ab黄色大片视频免费| 国产伦精品一区二区三区视频 | 国产精品h视频| 国产成人精品一区二区三区视频 | 在线这里只有精品| 国产免费无遮挡吸奶头视频| 久久一区精品| 任我爽在线视频精品一| 福利精品在线| 日韩在线视频观看正片免费网站| 中文字幕在线观看视频一区| 中文字幕欧美激情| 999这里有精品| 欧美国产先锋| 风间由美久久久| 日韩激情电影| 在线视频欧美日韩精品| 91精品国产乱码久久久久| 亚洲人成网站在线| jjzz黄色片| 亚洲一区二区三区四区五区午夜 | 亚洲综合视频在线| 亚州av综合色区无码一区| 亚洲女人av| 色爱区成人综合网| 国色天香久久精品国产一区| 久久久久久久一| 暖暖视频在线免费观看| 欧美区在线观看| 国产在线成人精品午夜| 久久久精品天堂| 国产一级免费大片| 最新日韩欧美| 日韩黄色影视| 国产剧情一区二区在线观看| 7m精品福利视频导航| 日本韩国精品一区二区| 欧美美女喷水视频| 日韩av在线天堂| 日本一区二区三区高清不卡| 在线免费黄色小视频| 99香蕉国产精品偷在线观看 | 在线成人精品视频| 免费亚洲一区| 久久免费视频2| 亚洲免费福利一区| 亚洲自拍偷拍第一页| 天堂中文最新版在线中文| 久久韩国免费视频| 亚州视频一区二区三区| 欧美高清一级片在线| 欧美不卡视频在线观看| 国产精品高潮久久久久无| 国产女人18毛片水真多18| 老司机精品视频在线| 男人日女人视频网站| 天天天综合网| 欧美区高清在线| 秋霞影院一区| 国产精品尤物福利片在线观看| 91禁在线看| 久久综合色影院| 福利片在线看| 日韩精品高清在线| 精品人妻伦一二三区久久| 欧美网站在线观看| 久久久国产精品黄毛片| 国产精品看片你懂得| 制服丝袜第二页| 国产成人午夜视频| 亚洲欧美偷拍另类| 日韩福利电影在线| 久久这里只有精品23| 亚洲一区欧美| 香蕉精品视频在线| 精品一区二区三| 欧美二级三级| 奇米777国产一区国产二区| 成人一区二区在线| 视频二区欧美毛片免费观看| 国产欧美日韩亚洲精品| 国产 日韩 欧美一区| 91av在线免费观看视频| 久久国产精品黑丝| 久久99国产精品久久久久久久久| 欧美极品另类| 色阁综合伊人av| gogogo高清在线观看免费完整版| 亚洲偷熟乱区亚洲香蕉av| 青青草免费在线视频| 日韩精品极品视频| 亚洲人在线观看视频| 日韩精品高清在线观看| 日本私人网站在线观看| 亚洲美女性生活视频| 日本黄在线观看| 亚洲免费视频一区二区| 国产一二三区在线视频| 亚洲无限av看| 91网页在线观看| 精品国产拍在线观看| 国产一二区在线| 久久777国产线看观看精品| 日韩精品卡一| 色综合久久久久久中文网| 色屁屁www国产馆在线观看| 欧美激情国产精品| 9999在线视频| 久久久久女教师免费一区| 国产精品—色呦呦| 欧美一区在线直播| 3d性欧美动漫精品xxxx软件| 国产精品视频成人| 日本免费精品| 激情小说网站亚洲综合网| 久久综合欧美| 亚洲亚洲精品三区日韩精品在线视频 | 国产蜜臀av在线播放| 97精品在线观看| a日韩av网址| 国产精品美女主播| 精品中文在线| 国产午夜精品一区| 久久不见久久见国语| 在线免费观看成人| 激情久久五月| 欧美综合在线观看视频| 久久aⅴ国产欧美74aaa| 亚洲成a人无码| 国产色一区二区| 青青操视频在线播放| 欧美性猛交xxxx久久久| 在线免费看av片| 精品乱码亚洲一区二区不卡| 日本福利片高清在线观看| 中文字幕欧美日韩va免费视频| 午夜伦理在线视频| 国产精品999| 亚洲精品18| 日韩精品久久一区二区三区| 欧美激情91| 超碰影院在线观看| 国产suv精品一区二区三区| av男人的天堂av| 亚洲最色的网站| 久草视频在线免费| 精品国产91乱码一区二区三区 | 久久精品视频一区| 欧美一区二区三区爽爽爽| 欧美日韩亚洲精品一区二区三区| 国产精品玖玖玖| 亚洲欧美日韩第一区| 欧美6一10sex性hd| 国产精品偷伦免费视频观看的| 精品精品国产毛片在线看| 中文字幕精品—区二区日日骚| 亚洲久色影视| 97超碰人人看| 亚洲国产精品ⅴa在线观看| 国产午夜免费视频| 91麻豆精品国产91久久久久久久久 | 久久久com| 欧美日韩91| 性猛交ⅹ×××乱大交| 91美女精品福利| 国产在线观看你懂的| 欧美电影一区二区三区| 福利在线观看| 国产成人精品视频在线| 精品欧美午夜寂寞影院| 国产在线无码精品| 韩日精品视频一区| 久草手机视频在线观看| 在线观看国产日韩| 日本一区视频| 欧洲亚洲免费视频| 日韩啪啪网站| 91猫先生在线| 97久久精品人人做人人爽50路| 久久精品国产av一区二区三区| 56国语精品自产拍在线观看| 高清性色生活片在线观看| 欧美专区日韩视频| 外国成人在线视频| 国产一区二区在线视频播放| 成人动漫一区二区三区| 欧美精品乱码视频一二专区| 56国语精品自产拍在线观看| 男人天堂久久久| 国产日韩在线看| 国产精品久久久久久久免费观看| 色婷婷狠狠18| 国产精品欧美一区喷水| 最新国产中文字幕| 中文字幕精品一区久久久久| 日本国产欧美| 亚洲成人自拍| 久久国产精品露脸对白| 多男操一女视频| 91精品免费观看| 很黄的网站在线观看| 97久久天天综合色天天综合色hd| 亚洲欧美综合| 久草免费资源站| 亚洲成人激情自拍| 视频二区在线| 国产精品99久久久久久人 | 国产免费xxx| 国产又黄又大久久| 欧美另类视频在线观看| 亚洲成人教育av| a日韩av网址| 亚洲欧美丝袜| 国产福利视频一区二区三区| 久久久精品视频免费| 亚洲欧美中文在线视频| 99re久久| 欧美一级中文字幕| 91在线视频播放| 欧美日韩a v| 久久精品视频亚洲| 黑色丝袜福利片av久久| 成人三级视频在线播放| 国产精品久久久久四虎| 亚洲黄色精品视频| 亲爱的老师9免费观看全集电视剧| 成人黄色av| 日本黄色www| 色老汉一区二区三区| 黄色免费在线网站| 精品国产乱码久久久久久蜜柚| 日韩一区精品字幕| 欧美精品久久久久性色| 亚洲免费人成在线视频观看| 亚洲精品一区av| 久久久久久久久久久99| 国产精品素人视频| 亚洲欧美另类视频| 国产精品久久久久久久7电影 | 精品中文字幕视频| 婷婷亚洲精品| 色姑娘综合天天| 日本高清不卡视频| 欧美性受ⅹ╳╳╳黑人a性爽| 欧美色图亚洲自拍| 国产成人自拍网|