<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AWTK-MVVMC 語言 MVVM 框架

          聯(lián)合創(chuàng)作 · 2023-09-28 06:20

          AWTK-MVVM是一套為AWTK用C語言開發(fā),并支持各種腳本語言的MVVM框架,實(shí)現(xiàn)了數(shù)據(jù)綁定、命令綁定和窗口導(dǎo)航等基本功能,使用AWTK-MVVM開發(fā)應(yīng)用程序,無需學(xué)習(xí)AWTK本身的API,只需學(xué)習(xí)綁定規(guī)則和Model的實(shí)現(xiàn)方式即可。

          一、MVVM

          MVVM(Model-View-ViewModel)是分離用戶界面和業(yè)務(wù)邏輯的經(jīng)典模式。

          分離用戶界面和業(yè)務(wù)邏輯的好處:

          • 讓用戶界面可以獨(dú)立變化。
          • 方便為業(yè)務(wù)邏輯編寫單元測試程序。
          • 方便UI設(shè)計師和程序員的分工和合作。

          MVVM相比MVP和MVC的優(yōu)勢:

          • 使用更簡單。
          • 分離更徹底。
          • 聲明式的編程更容易維護(hù)。

          MVVM的核心思想有兩個:

          • 通過數(shù)據(jù)綁定實(shí)現(xiàn)View與Model之間的數(shù)據(jù)交換。
          • 通過命令綁定實(shí)現(xiàn)View事件與Model行為之間的關(guān)聯(lián)。

          二、AWTK-MVVM

          AWTK-MVVM是一套為AWTK用C語言開發(fā),并支持各種腳本語言的MVVM框架,實(shí)現(xiàn)了數(shù)據(jù)綁定、命令綁定和窗口導(dǎo)航等基本功能,使用AWTK-MVVM開發(fā)應(yīng)用程序,無需學(xué)習(xí)AWTK本身的API,只需學(xué)習(xí)綁定規(guī)則和Model的實(shí)現(xiàn)方式即可。與其它MVVM框架相比,其特點(diǎn)有:

          • 代碼小。
          • 性能高。
          • 內(nèi)存開銷小。
          • 隔離更徹底。
          • 可移植到其它GUI。
          • 支持多種編程語言(目前支持C/JS)。

          三、使用方法

          • 獲取awtk并編譯。
          git clone https://github.com/zlgopen/awtk.git
          cd awtk
          scons
          • 獲取awtk-mvvm并編譯(awtk和awtk-mvvm處于用一級目錄)
          git clone https://github.com/zlgopen/awtk-mvvm.git
          cd awtk-mvvm
          git clone https://github.com/jerryscript-project/jerryscript.git 3rd/jerryscript
          scons

          編譯linux-fb版本,請修改SConstruct

          #for pc
          #sys.path.insert(0, '../awtk/')
          
          #for linux-fb
          sys.path.insert(0, '../awtk-linux-fb/')
          • 運(yùn)行demos
          ./bin/demo1

          本文以Linux/MacOS為例,Windows可能會微妙差異,請酌情處理。

          四、文檔

          五、示例

          C DEMO JS DEMO 說明
          demo1 jsdemo1 數(shù)據(jù)綁定基本用法
          demo2 jsdemo2 trigger參數(shù)的用法
          demo3 jsdemo3 converter參數(shù)的用法
          demo4 jsdemo4 顯式更新(Trigger=Explicit)的用法
          demo5 jsdemo5 validator參數(shù)的用法
          demo6 jsdemo6 命令綁定的基本用法
          demo7 jsdemo7 以計算器為例的綜合用法
          demo8 jsdemo8 以shape編輯為例的綜合用法
          demo9 jsdemo9 多窗口的基本用法
          demo10 jsdemo10 定時器的基本用法
          demo11 jsdemo11 一個視圖多個ViewModel的用法
          demo12 jsdemo12 多窗口之間參數(shù)傳遞
          demo13 jsdemo13 列表視圖的基本用法
          demo14 jsdemo14 快捷鍵的基本用法
          demo15 (no) 自定義導(dǎo)航器處理插件,以及MVVM窗口和非MVVM窗口的交互
          (no) jsdemo15 combox 數(shù)據(jù)聯(lián)動
          (no) jsdemo16 動態(tài)界面
          demo16 (no) 集成硬件外設(shè)
          demo17 (no) 無GUI情況集成硬件外設(shè)
          (no) jsdemo17 控制控件的可見性
          (no) jsdemo18 復(fù)雜屬性值的表示方法
          demo19 (no) 控制動畫啟停

          完整示例及模板項(xiàng)目:awtk-mvvm-c-hello

          瀏覽 29
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  Japanese厨房tub高潮 | 国产高清无码在线观看 | 爱爱视频免费看 | 麻豆综合久久 | 青青草成人小视频 |