繁中

Lynx:字節跳動的開源跨端UI框架

當您第一次看到Lynx時,很容易產生誤解:
「Flutter/RN的另一個跨端框架?"

但如果你一路遵循它的設計,你會發現它根本沒有打算參與這個遊戲。

Lynx更像是回答一個非常具體的問題:

在一個因信息流、動態UI和複雜交互而耗盡性能預算的應用程式中,您能否繼續以前端方式編寫界面?

跨界技術的真正困難永遠不是「能跑」

在小規模應用程式中,跨端框架的問題很典型:

  • API不完整
  • 天生能力不夠流暢
  • 有些組件不好寫

但在大型應用中,問題完全不同:

  • 一個頁面上有數百個組件
  • UI結構經常變化,但必須熱更新
  • 一旦滑動框架掉落,指示器就開始報警
  • JS和Native之間的每次通信都要花錢

此時,「優雅的抽象」可能是一項負資產。

山貓的存在始於這裡。

Lynx的核心態度: 不要讓JS太忙

Lynx並不討厭前端技術。
它真正警告的是什麼: 讓JS成為渲染系統的指揮中心.

在Lynx中,JS更像是:

  • 描述UI結構
  • 組織狀態變化
  • 表達商業邏輯

但真正的調度、渲染和性能控制幾乎都推回了Native。

這實際上是一個非常「工程現實」的想法:

JS寫得快而且很好。
但畫面掉落、口吃、崩潰,最終,原住民承擔了責任。

最好讓Native一開始收回控制權。

為什麼Lynx不追求完整的網絡語義?

很多人看到Lynx並不打算完全實現HTML/CSS,下意識地覺得它「不完整」。

但從工程角度來看,這正是它最清醒的地方。

完整的網絡標準意味著:

  • 歷史包袱
  • 模糊邊界
  • 性能不可預測

Lynx將其用於高度可控的內部業務:

  • 模塊形式有限
  • UI模式高度重複
  • 不是隨便寫給第三方的

在這個前提下,克制比兼容性更重要。

這不像RN,也不像Flutter

Lynx最大的特點是:
它無意成為「普遍解決方案」。

  • RN希望降低前端到本地的進入門檻
  • Flutter希望構建一個平台獨立的UI世界
  • Lynx只關心:
    「在一個已經很重的應用程式中,不要再讓UI成為不穩定因素。"

這也是為什麼它看起來:

  • 不夠友好
  • 不夠多才多藝
  • 甚至有點「內部工具氣味」

但這正是它的真實所在。

那麼它值得一看嗎?

如果您的目標是:

  • 找到您可以立即開始使用的跨端解決方案
  • 或者製作獨立的應用程式

那山貓基本上和你沒關係了。

但如果您關心:

  • 大型工廠遇到的真正問題是什麼?
  • 當規模失控時,項目又如何限制抽象
  • UI系統在極端壓力下會呈現什麼樣的形態

山貓是一隻 非常誠實的樣本.

它似乎並沒有告訴你「該做什麼」。"
這更像是在說:

當你沒有出路時,項目會迫使你做出選擇。

Github:https://github.com/lynx-family/lynx
管材:

返回頂端