亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - webapp業務流程基本一致,多套主題(樣式基本不一樣,交互稍有偏差)管理,并且有不斷有新增主題,該如何設計組件化架構?

瀏覽:90日期:2022-12-06 18:47:06

問題描述

業務場景

一套單頁應用,由于需要接入到不同的合作方,因此需要對ui進行調整,有時需要變更一些交互,但整個流程基本一致。

目前打算用vue重構項目,已將公共的業務邏輯抽離成業務層,但編寫頁面級組件時發現,依然存在大部分可復用代碼,例如在登錄頁面上:

// viewModel{ phoneNum, smsCode, loginbtn }

對于每個版本都存在,基本上可以用一套viewmodel去描述這個業務流程,我認為這部分重復代碼是可復用。

對于每次新增的版本而言,大多數改動的是樣式,少量的交互(也存在動很多交互,但具體業務邏輯流程不變)。

曾經考慮:方案一:

1.分割viewmodel到各子組件,構建該頁面時,引用這些業務組件拼湊,添加/修改樣式;2.子組件間事件通信或動態注冊data。3.交互變更大,新增某個子組件。

但是,一般應該先有ui組件,再有業務組件,此處設計是先有業務組件,再有ui組件。

方案二:

1.先編寫ui組件2.再編寫viewmodel對應的流程邏輯3.引用ui組件,mixin對應邏輯

思路十分凌亂,還請各位給點意見,謝謝。

問題解答

回答1:

首先,請區分【組件】和模塊的概念。組件僅僅用于表達 UI 交互,不應包含前后端請求等業務邏輯。

具體到問題,Sass 化的站點開發經常需要處理這類【功能可配置】的需求,常見流程:

后端開放【功能配置】接口,前端在頁面加載時獲取【當前頁面配置參數】信息

前端封裝各業務邏輯為獨立的 JS 模塊,通過 export 模塊的功能,將業務功能提供給 Vue 的 UI 層使用。

前端 UI 層根據功能配置,調用不同的模塊功能。

簡單說,開發模式和 Vue 單頁應用是一致的,追加根據功能配置定義 UI 邏輯的 JS 模塊,做好封裝即可。

至于主題動態切換的功能,同樣可用配置接口實現。例如,配置接口中存儲 style 字段標識當前業務方主題的 className 前綴,然后通過 :class 指令綁定該樣式前綴至當前頁面上,配合相應的 css 即可輕松實現主題切換。

P.S. 不要在項目開始階段使用 mixin。mixin 會使得業務邏輯難以查找與調試(混入 mixin 后可以引用不知從何位置導入的函數和變量)。按需導入業務模塊才是正確做法。

回答2:

分離 ui 與 功能組件(例如:網絡請求,本地存儲),實現功能組件基本上可以自由搭配組合;

ui 組件抽取拆分,具體粒度到多小,主要看題主項目之間差異有多大,還有迭代發布速度要求;現實中并不是可復用程度越高越好,層級越多,執行效率越低,出錯機會越大,調試難度越高;需要取得一個平衡點。

標簽: JavaScript
主站蜘蛛池模板: 一级黄色片一级片 | 国产亚洲精品一区二区在线播放 | 国产99热久久这里有精品999 | 精品国产自在现线看久久 | 国产高清在线a视频大全 | videosg最新欧美另类 | 国产在线一区精品对白麻豆 | 6699久久久久久久77777'7 66av99精品福利视频在线 | 窝窝午夜看片成人精品 | 国产特级毛片aaaaaa毛片 | 色你懂的 | 国产精品永久免费自在线观看 | 午夜不卡视频 | 香蕉97碰碰视频免费 | 狠狠色欧美亚洲狠狠色五 | 精品在线99 | 日韩不卡毛片 | 2022久久免费精品国产72精品 | 国产精品一区在线播放 | 黄色网页免费观看 | 麻豆资源| 日本黄色美女视频 | 国内精品一区二区在线观看 | 精品推荐 国产 | 高清影院在线欧美人色 | 久青草国产在线视频_久青草免 | 国产伦精品一区二区三区免费迷 | 久久99热只有视精品6国产 | 97精品国产福利一区二区三区 | 日本黄色小视频网站 | 欧美日韩中文字幕在线手机版本 | 黄色一级黄色片 | 操比大片 | 18成人网| 色在线观看视频 | 国产精品色综合久久 | 免费国产阿v视频在线观看 免费国产高清精品一区在线 | 啪啪日韩 | 国产乱人乱精一区二区视频密 | 亚洲午夜精品一区二区蜜桃 | 亚洲免费二区三区 |