使用cml init project 生成的項(xiàng)目結(jié)構(gòu)如下:
├── chameleon.config.js // 項(xiàng)目的配置文件
├── dist // 打包產(chǎn)出目錄
├── mock // 模擬數(shù)據(jù)目錄
├── node_modules // npm包依賴
├── package.json
└── src // 項(xiàng)目源代碼
├── app // app啟動(dòng)入口
├── components // 組件文件夾
├── pages // 頁(yè)面文件夾
├── router.config.json // 路由配置文件
└── store // 全局狀態(tài)管理
文件 | 必須 | 作用 |
---|---|---|
chameleon.config.js | 必須 | 項(xiàng)目配置文件 |
dist | 必須 | 自動(dòng)生成,用戶無(wú)需關(guān)注。項(xiàng)目編譯目標(biāo)目錄 |
mock | 必須 | 數(shù)據(jù)mock編寫文件夾 |
node_modules | 必須 | 自動(dòng)生成,用戶無(wú)需關(guān)注。npm包安裝文件夾 |
package.json | 必須 | npm包配置文件 |
app | 必須 | 應(yīng)用啟動(dòng)入口根文件夾 |
components | 必須 | 用戶組件根文件夾 |
pages | 必須 | 頁(yè)面根文件夾 |
router.config.json | 必須 | 路由配置文件 |
store | 必須 | 數(shù)據(jù)管理文件夾 |
一個(gè) .cml 文件開(kāi)發(fā)的組件由四塊內(nèi)容組成,分別是:
標(biāo)簽 | 必須 | 屬性 | 作用 |
---|---|---|---|
template | 必須 | lang:vue | 提供組件結(jié)構(gòu)、事件綁定、數(shù)據(jù)綁定、樣式綁定 |
template(標(biāo)簽設(shè)置cml-type屬性時(shí)) | 必須 | cml-type:json | 組件配置 |
script | 必須 | 暫無(wú) | 組件邏輯 |
style | 必須 | lang:less|stylus | 組件樣式表 |
.cml 文件的特殊形式,用于實(shí)現(xiàn)多態(tài)協(xié)議規(guī)范,多端差異化的入口
標(biāo)簽 | 必須 | 屬性 | 作用 | 備注 |
---|---|---|---|---|
script (interface 定義) | cml-type="interface" 情況下必須和 include 標(biāo)簽二選一 | cml-type:interface | 定義多態(tài)協(xié)議 | 規(guī)定組件或者 API 的輸入輸出結(jié)構(gòu)和類型 |
script(實(shí)現(xiàn)) | 多態(tài)組件:當(dāng)無(wú)標(biāo)簽時(shí)按規(guī)定的優(yōu)先級(jí)查找 多態(tài) API:必須有,或來(lái)自 include 繼承 | cml-type:wx|alipay|weex|web|tt|qq|其他 src:API 方法實(shí)現(xiàn)文件引用地址|組件實(shí)現(xiàn)文件引用地址 | 實(shí)現(xiàn)多態(tài)協(xié)議 | 1. 按<script cml-type="interface" >規(guī)定的輸入輸出結(jié)構(gòu)和類型,實(shí)現(xiàn)組件或者 API接口的實(shí)現(xiàn)。 2. 有 src 屬性時(shí),外鏈其他文件,且僅多態(tài)組件必須通過(guò)外鏈實(shí)現(xiàn)。 |
include | 必須和 <script cml-type="interface" > 的標(biāo)簽二選一 | src:引用 interface 文件路徑 | 繼承多態(tài)協(xié)議 | 1. 可用于重載既有組件或 API 的實(shí)現(xiàn),定制化某些端個(gè)性化能力。 2. 用于擴(kuò)展新端。 |
更多建議: