日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

體驗了一把華為的 OpenInula,談談使用感受

來源: 責編: 時間:2024-04-19 09:27:09 169觀看
導讀華為在今年開源了一款類似于 React 的前端框架, openInula。他的宣傳語上面,把 openInula 與大語言模型、前端 AI 賦能結合在一起,主打一個高性能、全場景、智能化。果然遙遙領先在宣傳語的設計上還是有點水平的。然后我

Bhm28資訊網——每日最新資訊28at.com

華為在今年開源了一款類似于 React 的前端框架, openInula。他的宣傳語上面,把 openInula 與大語言模型、前端 AI 賦能結合在一起,主打一個高性能、全場景、智能化。Bhm28資訊網——每日最新資訊28at.com

果然遙遙領先在宣傳語的設計上還是有點水平的。然后我就去了解了一下這個框架。Bhm28資訊網——每日最新資訊28at.com

一、無縫遷移

我想先試一下能不能真的做到無縫切換。如果真的能做到的話,我們就可以非常方便的使用 React 的生態直接搞 openinula 項目了。Bhm28資訊網——每日最新資訊28at.com

Bhm28資訊網——每日最新資訊28at.com

這樣來看的話,確實能夠快速將 React 的生態遷移到 openInula 上面來。但是由于我大多數組件都是基于 useState 來編寫的,因此,想要使用 useReactive 的話,只能全部替換掉。Bhm28資訊網——每日最新資訊28at.com

- const [display, setDisplay] = useState(false)+ const display = useReactive({ show: false })

替換掉之后功能基本上沒什么毛病。但是在最佳實踐的摸索上還存在一些疑問。比如當我想要將一個響應式數據傳遞給子組件時,下面哪種方式更好一些呢?我還沒有一個定論,還需要進一步的體會和摸索。Bhm28資訊網——每日最新資訊28at.com

<Dialog show={data.open.get()}}>hello</Dialog>
<Dialog show={data.open}>hello</Dialog>

第一種方式會更加契合解耦方面的思考,但書寫稍微繁瑣了一點,第二種方式呢,會對子組件邏輯造成更大的干擾。想到這里,突然之間明白了在 arkUI 里的狀態設計,如果從父組件里傳遞一個響應式數據給子組件時,子組件必須使用 @Prop 裝飾來接收這個狀態。Bhm28資訊網——每日最新資訊28at.com

這樣在子組件中,我們就能夠清晰的知道這個數據類型的特性到底是怎么回事了。從而降低了維護成本。這樣一想的話,arkUI 在組件狀態的設計上,確實有點東西。Bhm28資訊網——每日最新資訊28at.com

@Componentstruct ChildComponent {  @Prop  private count: number  build() {    Text(`Child Count: ${this.count}}`)  }}

四、意外之喜

當我試圖使用解構的方式來拆解 useReactive 時,居然不會失去響應性。Bhm28資訊網——每日最新資訊28at.com

const {count, open} = useReactive({   count: 0,   open: false });const countText = useComputed(() => {  return `計時: ${count.get()}`;});setInterval(() => {  count.set((c) => c + 1);}, 1000);

這可就解決了大問題了!當數據變得龐大,它的繁瑣的程度將會大大的降低。所以在使用上會比 solid.js 方便許多。Bhm28資訊網——每日最新資訊28at.com

我了解到的 Vue3 和 Solid 實際上在這一點上都做得不是很好,解構之后,Vue3 的狀態會失去響應性。Bhm28資訊網——每日最新資訊28at.com

// 直接使用 count 無法具備響應性const {count} = reactive({ count: 0 })

Solid 的 API 設計,又無法做到把顆粒度細分到每個子屬性Bhm28資訊網——每日最新資訊28at.com

const [count, setCount] = createSignal({n: 1});function clickHandler() {  setCount({ n: count().n + 1 })}

所以,當需要更細的屬性時,Vue3 可能會更多的使用 ref 來做,而 solid 則與 useState 一樣,單獨聲明這個屬性。Bhm28資訊網——每日最新資訊28at.com

這么橫向一對比,openInula 的響應式 API 就有點厲害了。在設計上充分體現了自己的獨創性和先進性,如果其他方面不出什么問題的話,應該會受到一大批程序員的喜愛。Bhm28資訊網——每日最新資訊28at.com

不愧是遙遙領先。 Bhm28資訊網——每日最新資訊28at.com

五、總結

openInula 的使用體驗與 React 幾乎一樣。與 React 不同的是,他增加了一個響應式 API。因此能夠增加一些不同的開發體驗。也正是由于這個響應式 API 的存在,讓 openInula 在 API 設計上有了自己的獨創性。Bhm28資訊網——每日最新資訊28at.com

與其他響應式框架相比,我更喜歡 openInula 的 API 設計,在開發體驗與維護體驗的綜合考慮上目前是做得最好的,雖然為了考慮維護體驗犧牲了一些開發體驗,不過我完全能接受。由于接觸了幾款華為的框架,可以感受到,他們在設計 API 時,會把可維護性的重要性看得比開發體驗更高。Bhm28資訊網——每日最新資訊28at.com

當然,svelte 我還沒有怎么了解過,不過有聽到坊間傳言說是模仿 Vue3 的,那估計設計模式跟 Vue3 差別不算大。Bhm28資訊網——每日最新資訊28at.com

var { count, a, b, c } = useReactive({  count: 1,  a: 1,  b: 1,  c: 1})count.set((v) => v + 1)count.get()a.set((v) => v + 1)a.get()b.set((v) => v + 1)b.get()c.set((v) => v + 1)c.get()

本文鏈接:http://www.www897cc.com/showinfo-26-84009-0.html體驗了一把華為的 OpenInula,談談使用感受

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Electron 30 正式發布,新特性詳解

下一篇: 接口擴展與設計模式:為何早點學習設計模式如此重要

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 三言兩語說透設計模式的藝術-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創建型設計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態工廠方法模式,不屬于GoF 23種設計
  • 如何使用JavaScript創建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經瀏覽過購物網站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區域,以便瀏覽。結合這個小小的重要功能可以大大改善您網站的用戶體驗
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術的發展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應運而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。可以用來發現應用程序、操作系統和網絡協議等中的漏洞或
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 機構稱Q2全球智能手機出貨量同比下滑11% 蘋果份額依舊第2

    7月20日消息,據外媒報道,研究機構的報告顯示,由于需求下滑,今年二季度全球智能手機的出貨量,同比下滑了11%,三星、蘋果等主要廠商的銷量,較去年同期均有下
  • 電博會上海爾智家模擬500平大平層,還原生活空間沉浸式體驗

    電博會為了更好地讓參展觀眾真正感受到智能家居的絕妙之處,海爾智家的程傳嶺先生同樣介紹了展會上海爾智家的模擬500平大平層,還原生活空間沉浸式體驗。程傳
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀。  美國時間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內容審核等。此前,T
Top 主站蜘蛛池模板: 丰台区| 阳信县| 柯坪县| 红原县| 开化县| 利川市| 白玉县| 南投市| 永吉县| 航空| 临武县| 云浮市| 库伦旗| 西昌市| 焉耆| 巴彦县| 龙里县| 安仁县| 北宁市| 项城市| 罗城| 赣州市| 竹山县| 德州市| 巧家县| 威海市| 永修县| 白城市| 阳谷县| 晋中市| 达尔| 镇平县| 松江区| 肥城市| 同心县| 贵港市| 阿瓦提县| 濮阳市| 蚌埠市| 哈密市| 石景山区|