成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

React 可視化開發(fā)工具 Shadow Widget 非正經(jīng)入門(之五:指令式界面設(shè)計)

pinecone / 2951人閱讀

摘要:本篇解釋中類的控制指令,與指令式界面設(shè)計相關(guān)。本專欄歷史文章介紹一項讓可以與抗衡的技術(shù)可視化開發(fā)工具非正經(jīng)入門之一三宗罪可視化開發(fā)工具非正經(jīng)入門之二分離界面設(shè)計可視化開發(fā)工具非正經(jīng)入門之三雙源屬性與數(shù)據(jù)驅(qū)動可視化開發(fā)工具非正經(jīng)入門之四

本系列博文從 Shadow Widget 作者的視角,解釋該框架的設(shè)計要點。本篇解釋 Shadow Widget 中類 Vue 的控制指令,與指令式界面設(shè)計相關(guān)。

1. 指令式界面設(shè)計

Vue 與 Angular 都支持用控制指令描述界面,比如 Vue 中循環(huán)創(chuàng)建多個節(jié)點:

{{ index }} {{ item.message }}

Angular 也有類似 v-for, v-if, v-else 等控制指令,這些對于快速定義用戶界面很有用,而 React 實現(xiàn)類似功能需借助 JS 編程,在便捷、直觀方面不如 Angular 與 Vue。Shadow Widget 通過引入可計算屬性與 MJI 解釋器,彌補了 React 這項缺陷。

2. 節(jié)點引用

界面設(shè)計中常需要照著一個構(gòu)件的樣式,復(fù)制出多個,比如下面 btn2 按鈕,保持與 btn1 一致的樣式:

  Test 1
  Test 2

Shadow Widget 的轉(zhuǎn)義標(biāo)簽也用 $=xx 屬性表達(dá)節(jié)點引用,這與指定 WTC 類(如上面 $=Button)不沖突,因為表達(dá)引用時,字串值必是路徑格式,首字母必是 ".""/",而指示 WTC 類,首字母必定不是這兩個。系統(tǒng)能自動識別這兩種用法,用于路徑引用時,我們習(xí)慣用引號括起來,而用作 WTC 類時,不加引號(不必?fù)?dān)心,瀏覽器會自動把它看成字串的),這么書寫理解起來很清晰。

3. 開啟解釋執(zhí)行的上下文環(huán)境

控制指令是可計算屬性中的一種,可計算屬性是一種通過腳本表達(dá)式,借助 MJI (Mini Javascript Interpreter) 解釋器動態(tài)解析計算的屬性。比如:

Test 1

這里 $html 是可計算屬性,這段代碼運行效果與前面等同。

須注意,可計算屬性只在開啟 MJI 解釋運行環(huán)境后才生效,否則它只是常規(guī)字串。解釋運行環(huán)境按需動態(tài)開啟,用完即自動銷毀,有此環(huán)境 MJI 才能維護(hù)腳本計算的上下文運算關(guān)系。有下面幾種開啟解釋運行環(huán)境的方式:

$=path 建立引用,如上面舉例,如果引用位置尚不存在解釋運行環(huán)境,系統(tǒng)將自動創(chuàng)建一個。

$for=expr$$for=expr 指示將一層調(diào)用空間壓入棧,系統(tǒng)自動檢測當(dāng)前是否有解釋運行環(huán)境,若沒有,也自動創(chuàng)建。

$for="" 開啟一個調(diào)用空間,如果當(dāng)前沒有解釋運行環(huán)境,系統(tǒng)自動創(chuàng)建。

4. 棧式調(diào)用空間

與常規(guī)編程語言類似,MJI 解釋運行環(huán)境也有調(diào)用棧,一個 $for 循環(huán)要使用一套 item, index, count 變量,多個 $for 循環(huán)嵌套使用,就形成多套 item, index, count 變量的棧式結(jié)構(gòu)。

在 MJI 解釋運行環(huán)境中,按如下方式使用首層調(diào)用空間中的變量:

  props(0).attr   duals(0).attr   state(0).attr
  item(0)   index(0)   count(0)

或簡寫如下:

  props.attr   duals.attr   state.attr
  item   index   count

如果讀上一層棧中變量:

  props(-1).attr   duals(-1).attr   state(-1).attr
  item(-1)   index(-1)   count(-1)

再往一層,則用 -2 指示,其它類推。

5. 舉一個例子

運行效果如下:

??

這個例子包含知識點較集中,講解幾個要點:

$for="" 開啟一個解釋執(zhí)行的計算環(huán)境,后面的 $for="item in duals.data" 則進(jìn)入下一層,當(dāng)前調(diào)用空間將壓棧。

內(nèi)層 $for 中的可計算屬性要引用上層調(diào)用空間,這么書寫:duals(-1).required

$if$else 也是控制指令,有條件的顯示特定節(jié)點。還有一個 $elif 沒舉例到,含義為 "else if",用法可類推。

$for 下用來表達(dá)循環(huán)生成的節(jié)點,要顯式指定 key 值,如本例的 $key="if_"+index$key="el_"+index,這里 index 是循環(huán)序號,依次取值為 0, 1, 2...

6. 更多功能

本系列博文提供引導(dǎo)式入門介紹,過多細(xì)節(jié)略去不講。關(guān)于指令式界面設(shè)計的內(nèi)容,重要些的還有:

$for 組裝子成員提供過濾、排序等功能

可計算表達(dá)式能用于異步計算,比如發(fā)起 ajax 調(diào)用

提供 flex 布局面板,方便可視化的快速搭建一個頁面

支持模板定義(TempPanel, TempDiv),便于定制化引用、批量引用

用導(dǎo)航面板與選項構(gòu)件,快速搭建列表導(dǎo)航、分頁導(dǎo)航等應(yīng)用,導(dǎo)航面板還為絕對路徑分段,讓其下節(jié)點能用 "./xx""../../xx" 相對路徑方式做引用。

選項構(gòu)件支持彈出浮窗,支持 trigger 觸發(fā)器等

細(xì)節(jié)請閱讀《Shadow Widget 用戶手冊》。

本專欄歷史文章:

介紹一項讓 React 可以與 Vue 抗衡的技術(shù)

React 可視化開發(fā)工具 Shadow Widget 非正經(jīng)入門(之一:React 三宗罪)

React 可視化開發(fā)工具 Shadow Widget 非正經(jīng)入門(之二:分離界面設(shè)計)

React 可視化開發(fā)工具 Shadow Widget 非正經(jīng)入門(之三:雙源屬性與數(shù)據(jù)驅(qū)動)

React 可視化開發(fā)工具 Shadow Widget 非正經(jīng)入門(之四:flux、mvc、mvvm)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83461.html

相關(guān)文章

  • React 可視開發(fā)工具 Shadow Widget 正經(jīng)入門(之一:React 三宗罪)

    摘要:前言非正經(jīng)入門是相對正經(jīng)入門而言的。不過不要緊,正式學(xué)習(xí)仍需回到正經(jīng)入門的方式??焖偃腴T建議先學(xué)會用拼文寫文檔注冊一個賬號,把庫到自己名下,然后用這個庫寫自己的博客,參見這份介紹。會用拼文寫文章,相當(dāng)于開發(fā)已入門三分之一了。 本系列博文從 Shadow Widget 作者的視角,解釋該框架的設(shè)計要點,既作為用戶手冊的補充,也從更本質(zhì)角度幫助大家理解 Shadow Widget 為什么這...

    dongxiawu 評論0 收藏0
  • React 可視開發(fā)工具 Shadow Widget 正經(jīng)入門(之四:flux、mvc、mvvm

    摘要:是分發(fā)器,是數(shù)據(jù)與邏輯處理器,會在注冊針對各個命令字的響應(yīng)回調(diào)函數(shù)。當(dāng)按如下方式觸發(fā)回調(diào)時,回調(diào)函數(shù)具備事件的特性。 本系列博文從 Shadow Widget 作者的視角,解釋該框架的設(shè)計要點。本篇解釋 Shadow Widget 在 MVC、MVVM、Flux 框架之間如何做選擇。 showImg(https://segmentfault.com/img/bVOODj?w=380&h...

    msup 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<