歡迎您光臨深圳凯时真人娱乐平台網絡科技有限公司!
电话图标 余先生:13699882642

網站百科

为您解码網站建設的点点滴滴

爲什麽有了Taro,凯时真人娱乐平台 還在做Alita??真正的React??

发表日期:2019-11 文章编辑:小灯 浏览次数:1118

自從Alita发布以来,由于Alita和Taro一样都是React语法在小程序上的处理, 所以一直有很多人问我“已经有Taro了,为什么又造轮子呢??”,今天用这篇文章统一回答一下。

首先凯时真人娱乐平台 看下Taro,他是一套遵循 React 语法规范的 多端开发 解決方案。他遵循 React 语法规范,采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时支持使用 JSX 语法,让代码具有更丰富的表现力,使用 Taro 进行开发可以获得和 React 一致的开发体验。

截止本文開始的時候,Taro在github上已經獲得了2W多star,實際上線的業務也是非常多的,另外Taro已經形成了自己的開發者社區,其周邊的工具非常的豐富,可以說是非常成熟,非常成功的開源項目了。

回到故事的開始:怎麽樣把React程序(主要是JSX)運行在小程序呢?
Taro采用的是編譯時方案,通過對代碼靜態的分析,把JSX修改爲等效wxml。

這種方式的局限在于JSX是動態的,編譯時是沒有辦法完全表達JSX的。React“編程”式的構建UI,更多的是把JSX當成一個普通的數據類型來看待,一個JSX片段,可以用來初始化變量,可以作爲函數參數,可以作爲函數返回值等等

var a = <View><Text>Hi</Text></View>

function f(b) {
    const r =  [
        b,
        <Text>Hello</Text>
    ]
    r.push(a)
}
var x = f(<Text></Text>)

...

編譯時方案嘗試在編譯期推理運行期的信息,這會有很大的局限性。

而类比React Native的渲染思路,有没有一种方案上层还是React环境,然后底层渲染通过小程序的方式。

Alita正是基于這種設計思路的嘗試。Alita希望提供一種真正意義上的React與小程序的結合。

不过上面的方式貌似对React语法是完全的支持,但是实际使用过Alita的人,也知道Alita对语法还是有一些限制。这主要是因为出于潜在的性能因素的考虑, Alita采用了 微信小程序自定義組件映射React組件的方式,他們之間有很大不同,比如微信小程序自定義組件引用的組件必須預先在json文件定義其路徑。


import {Hello, NiHao} from 'hello'

class A extends Component {
    render(){
        return <View>
            <Hello/>
            <NiHao/>
        </View>
    }
}

以上的NiHao组件,要获取其组件路径,其实还挺困难的,所以Alita会对组件文件有些限制来方便的获取其路径。 诸如此类。

總結

以上就是凯时真人娱乐平台 做Alita的一點思考,也算是對最開始的問題做個回答,另外基于相似的原理,凯时真人娱乐平台 還嘗試過把Flutter底層渲染機制換成小程序:flutter_mp https://github.com/areslabs/flutter_mp。


本頁內容由凯时真人娱乐平台網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權,如您認爲本網頁中由涉嫌抄襲的內容,請及時與凯时真人娱乐平台 聯系,並提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:/25260.html
相關小程序
 八年  行業經驗

多一份參考,總有益處

联系深圳网站公司凯时真人娱乐平台网络,免费获得網站建設方案及报价

咨詢相關問題或預約面談,可以通過以下方式與凯时真人娱乐平台 聯系

業務熱線:余經理:13699882642

在線咨詢 提交需求

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

  • 粵ICP備13056747號