我們是怎么從ng遷移到vue的
為了簡(jiǎn)化項(xiàng)目管理和提升協(xié)同效率,引入了 single-spa 作為新的入口文件解決方案。single-spa 實(shí)現(xiàn)了所有項(xiàng)目的一次啟動(dòng),所有子項(xiàng)目能同時(shí)開(kāi)發(fā)與編譯,省去了頻繁切換和端口沖突的問(wèn)題。
在構(gòu)建語(yǔ)言的管理上,原本的 app 使用 ng1 編寫 JavaScript,slim 搭配 slim 作為頁(yè)面模板,而 gulp 則用于遍歷所有 js 文件并打包成一個(gè)文件。對(duì)于新加入的部分頁(yè)面,則使用 iframe 引入基于 vue-cli 的項(xiàng)目,兩者間通過(guò) cookie 實(shí)現(xiàn)登錄數(shù)據(jù)的共享。
在更新架構(gòu)方面,保留了 gulp 作為主編譯工具,而 webpack 則負(fù)責(zé)處理 vue 和原有 app 的 js 打包及資源文件編譯。項(xiàng)目約定,原有 ng 部分盡量保持穩(wěn)定,新需求則在 vue 項(xiàng)目中實(shí)現(xiàn)。
遷移方案分為老項(xiàng)目維護(hù)和新需求開(kāi)發(fā)兩部分。老項(xiàng)目保持現(xiàn)狀,需要更新時(shí)單獨(dú)處理;新需求則在 vue 項(xiàng)目中編寫。使用 single-spa 對(duì)頁(yè)面進(jìn)行拆分,將需要更新的部分作為新子 app 分離出來(lái),實(shí)現(xiàn)局部更新,不影響整體。
在編譯工具改造過(guò)程中,最初計(jì)劃將 gulp 替換為 webpack,但由于找不到適用于 slim 的 webpack 插件,最終保留了 gulp 進(jìn)行 ng 相關(guān) html 文件的編譯。同時(shí),devServer 采用自定義腳本,并在公司特定需求下進(jìn)行 api 切換。
為了統(tǒng)一語(yǔ)言、頁(yè)面、Store 和 Route,項(xiàng)目采用了 single-spa 進(jìn)行微前端管理,支持多種前端框架。Store 統(tǒng)一使用 vuex,通過(guò) import 引入 js 文件共享作用域,將 ng 的 rootScope 掛載到 vuex,使用插件觸發(fā)更新 ng。
統(tǒng)一路由管理時(shí),保留了各自的跳轉(zhuǎn)方式,通過(guò)指令修改為 single-spa 的路由跳轉(zhuǎn),并解決 ng 原有的 hash 路由與 history 路由的兼容問(wèn)題。
目錄結(jié)構(gòu)統(tǒng)一方面,使用 webpack 的 alias 功能引入 vue 相關(guān)組件,將平級(jí)目錄移入 src 并調(diào)整 alias,實(shí)現(xiàn)了無(wú)縫遷移。項(xiàng)目拆分為獨(dú)立 app 后,由 single-spa 管理,提高了開(kāi)發(fā)效率和協(xié)同性。
項(xiàng)目遷移進(jìn)展順利,側(cè)邊欄導(dǎo)航欄更新并添加搜索框,過(guò)程中遇到一些問(wèn)題,但通過(guò)拆分 app 的方式,保證了項(xiàng)目正常運(yùn)行。為簡(jiǎn)化項(xiàng)目啟動(dòng)流程,額外開(kāi)發(fā)了 seed 系統(tǒng),通過(guò)定義數(shù)據(jù)結(jié)構(gòu)快速生成項(xiàng)目頁(yè)面。遷移項(xiàng)目進(jìn)展有望,團(tuán)隊(duì)的開(kāi)發(fā)效率和協(xié)同性得到了顯著提升。
TinyVue組件庫(kù)和TinyNG組件庫(kù)的區(qū)別是什么?
它們的區(qū)別在于所采用的前端框架不同,因而在使用上也有所區(qū)別。Vue.js和Angular是兩種不同的前端框架,它們?cè)诮Y(jié)構(gòu)、語(yǔ)法和使用方式等方面有所不同。因此在使用TinyVue組件庫(kù)和TinyNG組件庫(kù)時(shí)需要按照不同的框架使用方式進(jìn)行相應(yīng)的調(diào)用。對(duì)于這個(gè)區(qū)別,大家可以根據(jù)自己的實(shí)際需求和業(yè)務(wù)需要去使用,但說(shuō)到...
vue和typescript的區(qū)別(vue和ts結(jié)合好嗎)
Vue更新PHP的丑陋語(yǔ)法 React和Ng更新Java那種麻煩但人多參與可控的語(yǔ)法 react和vue區(qū)別兩者本質(zhì)的區(qū)別:模板和組件化的區(qū)別 Vue本質(zhì)是MVVM框架,由MVC發(fā)展而來(lái);React是前端組件化框架,由后端組件化發(fā)展而來(lái);Vue使用模板 React使用JSX React本身就是組件化 Vue是在MVVM上擴(kuò)展的 共同點(diǎn):都支持組件化,都...
vue.js v-cloak是什么意思?
Vue.js 中的 v-cloak 用于解決數(shù)據(jù)綁定時(shí)可能出現(xiàn)的代碼閃爍問(wèn)題。這個(gè)特性在 Angular 中則通過(guò) ng-cloak 指令實(shí)現(xiàn)。比如在以下代碼片段中:例1:{{price}} 例2:{{price}} 例3:{{price}} 其中,例1在 Vue.js 解析 {{price}} 之前,用戶能看到的是 "{{price}}" 這個(gè)字符串,但例2和例...
angularjs和vue有什么區(qū)別
(4)指令(ng-click ng-model ng-href ng-src ng-if...)(5)服務(wù)Service($compile $filter $interval $timeout $http...)vue.js的特點(diǎn)vue.js是一個(gè)構(gòu)建用戶界面的漸進(jìn)式框架。 采用自底向上增量開(kāi)發(fā)的設(shè)計(jì)。它的目標(biāo)在于通過(guò)簡(jiǎn)單的API實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件(1)模塊化,目前最熱...
Angular2 相比 Vue 有什么優(yōu)勢(shì)
(update: Vue 2 全家桶自帶官方 typings)5. Vue 在最佳實(shí)踐下需要手動(dòng)使用 setter 的場(chǎng)景其實(shí)非常少,這和對(duì)象復(fù)雜不復(fù)雜沒(méi)有關(guān)系,只和你有沒(méi)有正確地聲明初始數(shù)據(jù)有關(guān)系。ng2 雖然有 zone.js,但是對(duì)于不是從 ng2 所控制的范圍內(nèi)觸發(fā)的變動(dòng),ng2 依然不能檢測(cè)到。換句話說(shuō),數(shù)據(jù)操作必須是從 ...
vue如何實(shí)現(xiàn)雙向數(shù)據(jù)綁定(vue30的雙向數(shù)據(jù)綁定)
1.DOM事件,譬如用戶輸入文本,點(diǎn)擊按鈕等.(ng-click) 2.XHR響應(yīng)事件($http) 3.瀏覽器Location變更事件($location) 4.Timer事件($timeout,$interval) 5.執(zhí)行$digest()或$apply() 3.數(shù)據(jù)劫持:vue.js則是采用數(shù)據(jù)劫持結(jié)合發(fā)布者-訂閱者模式的方式,通過(guò)Object.defineProperty()來(lái)劫持各個(gè)屬性的setter,getter,在數(shù)據(jù)...
ng-form-element能放到手機(jī)端使用嗎?
不能。ng-form-element不兼容IE,沒(méi)有精確的分辨率適配方案,是不能放到手機(jī)端使用的。ng-form-element基于vue和element-ui實(shí)現(xiàn)的表單設(shè)計(jì)器,通過(guò)拖拽方式快速生成一個(gè)表單頁(yè)面,表單可以導(dǎo)出json格式。
Vue.js為什么不支持templateUrl模式
但是分離你的js和html代碼真的是個(gè)好主意么?在Vue.js的組件中,js和html天然緊耦合,事實(shí)上,這些代碼在一個(gè)文件更簡(jiǎn)單易懂。在2個(gè)文件中來(lái)回切換上下文邏輯實(shí)際上讓開(kāi)發(fā)者更不爽。在vue的概念里,組件才是vue.js的基本構(gòu)建單位,并不是模板文件。每一個(gè)vue.js的模板都伴隨著他的好基友js,分離...
vue低代碼(vue低代碼框架)
TinyVue組件庫(kù)是基于Vue.js框架開(kāi)發(fā)的一組組件庫(kù),而TinyNG組件庫(kù)是基于Angular框架開(kāi)發(fā)的一組組件庫(kù)。它們的區(qū)別在于所采用的前端框架不同,因而在使用上也有所區(qū)別。目前華為云出品的開(kāi)源項(xiàng)目OpenTiny其中包含兩個(gè)組件庫(kù)項(xiàng)目一個(gè)是TinyVue還有一個(gè)是TinyNG當(dāng)然還包含擁有主題配置系統(tǒng)\/中后臺(tái)模板\/TinyCLI...
發(fā)布ng-alain Beta 版本
shared\/styles: 高級(jí)核心樣式,謹(jǐn)慎修改。.angular-cli.json: 第三方庫(kù)引用,可移除。3. 項(xiàng)目命名與增強(qiáng)CSS克隆后,只需替換ng-alain為項(xiàng)目名稱。ng-alain提供了微調(diào)樣式腳本,詳細(xì)文檔在_project_document。4. 關(guān)于AntdAnt Design是一款流行的設(shè)計(jì)語(yǔ)言,React、Angular和Vue都有官方實(shí)現(xiàn)。Ant Design的資源...
相關(guān)評(píng)說(shuō):
延吉市扭簧: ______ Vue是一個(gè)基于MVVM模式數(shù)據(jù)驅(qū)動(dòng)頁(yè)面的框架,它將數(shù)據(jù)綁定在視圖上.屬于實(shí)現(xiàn)單頁(yè)面應(yīng)用的技術(shù).首先,vuejs在實(shí)例化的過(guò)程中,會(huì)對(duì)實(shí)例化對(duì)象選項(xiàng)中的data 選項(xiàng)進(jìn)行遍歷,遍歷其所有屬性并使用 Object.defineProperty 把這些屬性全部...
延吉市扭簧: ______ 將內(nèi)核切換成 Vue 之后,原先基于 Weex 語(yǔ)法開(kāi)發(fā)的項(xiàng)目將如何過(guò)渡到 Vue ?首先需要明確一點(diǎn):Weex 原有的前端框架也會(huì)繼續(xù)存在于 WeexSDK 中,依然支持 .we 文件格式的寫法.此外,由于 .we 和 .vue 文件的格式本身就比較接近,所以遷移成本比較小,建議大家將現(xiàn)有 .we 格式的文件都轉(zhuǎn)換成 .vue 格式.我們也推出了相應(yīng)的工具和方法輔助遷移,在內(nèi)部也有大量的成功實(shí)踐,下邊將重點(diǎn)介紹一下將 .we 文件轉(zhuǎn)成 .vue 文件的方法.
延吉市扭簧: ______ 成語(yǔ):草木皆兵 釋義:把山上的草木都當(dāng)做敵兵.形容人在驚慌時(shí)疑神疑鬼. 造句:這一天大家都是驚疑不定,~,迨及到了晚上,仍然毫無(wú)動(dòng)靜. 成語(yǔ):赤膊上陣 釋義:光著膀子上陣.比喻...
延吉市扭簧: ______ 核舟記一.通假字 詘右臂支船(詘——通“屈”,彎曲.) 左手倚一衡木(衡——通“橫”,橫著的.) 舟首尾長(zhǎng)約八分有奇(有—— 通“又”,用來(lái)連接整數(shù)和零數(shù).) 虞山王毅叔遠(yuǎn)甫刻(甫—...
延吉市扭簧: ______ 一如既往 ( yī rú jì wǎng ) 解釋一:完全;如:像;既往:從前.指態(tài)度沒(méi)有任何變化,還是像從前一樣. 出處《第二次握手·六》:“清...
延吉市扭簧: ______ 無(wú)情對(duì): 三星白蘭地 五月黃梅天 三尺天藍(lán)緞 六味地黃丸 樹(shù)已半尋休縱斧 果然一點(diǎn)不相干 雞冠花未放 狗尾草先生 陶然亭 張之洞 公門桃李爭(zhēng)榮日 法國(guó)荷蘭比利時(shí)...
延吉市扭簧: ______ 誠(chéng)心能叫石頭落淚,下一句是:實(shí)意能讓枯木發(fā)芽. 釋義:只要你是誠(chéng)心實(shí)意的,不管再艱難的事都是能成功的. 在生活中往往會(huì)遇到很多困難,但是只要誠(chéng)心實(shí)意的對(duì)待終將會(huì)有自己想要的結(jié)果. 出自《真愛(ài)》,全文: 精誠(chéng)感落頑石淚, ...
延吉市扭簧: ______ 三場(chǎng)硬拼硬打的戰(zhàn)斗.三場(chǎng)硬仗[sān chǎng yìng zhàng] 造句: (1) 他們隊(duì)是一支勁旅,看來(lái)我們要打三場(chǎng)硬仗了.(2) 好好地養(yǎng)精蓄銳吧!明天還有三場(chǎng)硬仗要打!(3) 默多克先生很漂亮地打勝了三場(chǎng)硬仗.(4) 我本以為這會(huì)是三場(chǎng)硬仗,因?yàn)樾薨猜?lián)也有些很棒的球員,但是我們開(kāi)局非常順利,我們剛開(kāi)場(chǎng)就進(jìn)了球,這讓我們接下來(lái)的比賽輕松了許多.(5) 再到籃球場(chǎng)打五對(duì)五的三場(chǎng)硬仗.