摘要:再談前端項(xiàng)目的組件化之前詳細(xì)聊過(guò)的前端項(xiàng)目的組件化,可以參考組件化與私有倉(cāng)庫(kù),今天來(lái)更進(jìn)一步的說(shuō)說(shuō)前端項(xiàng)目的組件化。
再談前端項(xiàng)目的組件化
之前詳細(xì)聊過(guò)的前端項(xiàng)目的組件化,可以參考 組件化 與 私有 npm 倉(cāng)庫(kù),今天來(lái)更進(jìn)一步的說(shuō)說(shuō)前端項(xiàng)目的組件化。
1. 之前的組件化目錄結(jié)構(gòu):
-project1 # 項(xiàng)目1 -project2 # 項(xiàng)目2 -component1 # 組件1 -component2 # 組件2
project1 的 package.json:
{ "dependencies": { "@yourCompany/component1": "^0.0.1", "@yourCompany/component2": "^0.0.1" } }
在代碼中使用:
import component1 from "@yourCompany/component1";2. 之前的組件化方式存在的問(wèn)題
更新組件比較麻煩,特別是對(duì)于一些與業(yè)務(wù)耦合比較深的組件,頻繁更新會(huì)比較頭疼
組件太多的時(shí)候,管理起來(lái)就感覺(jué)比較累,因?yàn)槊總€(gè)組件都是一個(gè)多帶帶的項(xiàng)目,都有一套獨(dú)立的構(gòu)建環(huán)境
對(duì)于有些代碼量小的組件,做一個(gè)多帶帶的項(xiàng)目,實(shí)在有點(diǎn)大才小用
3. 另外的項(xiàng)目組件化方式針對(duì)上面講到的問(wèn)題,另一種方式可以很好的解決:
目錄結(jié)構(gòu):
-project1 # 項(xiàng)目1 -project2 # 項(xiàng)目2 -components # 組件集合項(xiàng)目
components 組件集合項(xiàng)目的目錄結(jié)構(gòu):
- src/ # 源代碼目錄 - component1 # 組件1 - component2 # 組件2 - component3 # 組件3 - ... - package.json - README.md - CHANGELOG.md - .eslintrc.js - .stylelintrc.js - .prettierrc.js - ...
把 components 目錄軟鏈接 project1 目錄下:
(注意: project1 的 .gitignore 需加上 /components)
# 以下是 linux 命令,windows 類(lèi)似 cd project1 ln -s ../components ./
project1 項(xiàng)目的目錄結(jié)構(gòu):
- src/ # 源代碼目錄 - components/ # 組件項(xiàng)目目錄(軟鏈接) - package.json - README.md - CHANGELOG.md - .eslintrc.js - .stylelintrc.js - .prettierrc.js - ...
在代碼中使用:
import component1 from "relative/path/to/components/src/component1";4. 兩種方式的選擇
上面的兩種方式各有各的優(yōu)勢(shì),可以配合一起使用。
大的、不常更新的組件可以使用 npm 包的方式,小的、常更新的可以使用軟鏈接項(xiàng)目的方式。
后續(xù)更多博客,查看 https://github.com/senntyou/blogs
作者:深予之 (@senntyou)
版權(quán)聲明:自由轉(zhuǎn)載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/104877.html
摘要:前段時(shí)間我針對(duì)手頭上的項(xiàng)目前端配置進(jìn)行了反思以及總結(jié)并且寫(xiě)了兩篇文章傳統(tǒng)后端渲染的項(xiàng)目前端配置配置之前后端不分離很顯然這些配置能滿足一時(shí)的需求但是也有不足今天繼續(xù)總結(jié)這里應(yīng)該不涉及到具體后端語(yǔ)言只對(duì)前端配置進(jìn)行描述畢竟配置工程師逃靜態(tài)資源管 前段時(shí)間我針對(duì)手頭上的項(xiàng)目前端配置進(jìn)行了反思以及總結(jié)并且寫(xiě)了兩篇文章: webpack傳統(tǒng)后端渲染的項(xiàng)目前端配置, webpack配置之前后端不分...
摘要:中的生命周期函數(shù)也可以稱(chēng)之為生命周期鉤子函數(shù),在特定的時(shí)期,調(diào)用特定的函數(shù)。吊起鉤子函數(shù)調(diào)起鉤子函數(shù)問(wèn)題為什么是一個(gè)數(shù)組卸載組件,會(huì)觸發(fā)一個(gè)這行代碼之后發(fā)生了什么背后實(shí)現(xiàn)原理。 簡(jiǎn)介 關(guān)于Vue的生命周期函數(shù),目前網(wǎng)上有許多介紹文章,但也都只是分析了表象。這篇文檔,將結(jié)合Vue源碼分析,為什么會(huì)有這樣的表象。 Vue中的生命周期函數(shù)也可以稱(chēng)之為生命周期鉤子(hook)函數(shù),在特定的時(shí)期...
摘要:解決思路服務(wù)器端渲染服務(wù)器端和前端公用同一個(gè)應(yīng)用,然后通過(guò)構(gòu)建工具及配置,確定哪些組件需要再服務(wù)器端渲染,那些組件需要再客戶(hù)端渲染。服務(wù)器端渲染,由框架與構(gòu)建工具配合,并依據(jù)一定的項(xiàng)目結(jié)構(gòu)和編碼方式,共同運(yùn)行。 分離 為什么需要 前后端分離、web服務(wù)器與static服務(wù)器分離: 前端與后端耦合 (需求) 自動(dòng)化、工程化的構(gòu)建前端的代碼 (基礎(chǔ)條件) 模塊化、組件化,項(xiàng)目共享代碼 (...
摘要:阿里云效平臺(tái)基于理念的私有平臺(tái)實(shí)踐本文將系統(tǒng)的從個(gè)方面,分享互娛運(yùn)維團(tuán)隊(duì)對(duì)于運(yùn)維平臺(tái)實(shí)踐經(jīng)驗(yàn)及未來(lái)展望,希望對(duì)大家有一些參考意義。 CI Weekly 圍繞『 軟件工程效率提升』 進(jìn)行一系列技術(shù)內(nèi)容分享,包括國(guó)內(nèi)外持續(xù)集成、持續(xù)交付,持續(xù)部署、自動(dòng)化測(cè)試、 DevOps 等實(shí)踐教程、工具與資源,以及一些工程師文化相關(guān)的程序員 Tips 。同步于 flow.ci Blog、微信公眾號(hào)、官...
閱讀 2181·2021-10-08 10:21
閱讀 2651·2021-09-29 09:34
閱讀 3566·2021-09-22 15:51
閱讀 5083·2021-09-22 15:46
閱讀 2368·2021-08-09 13:42
閱讀 3499·2019-08-30 15:52
閱讀 2792·2019-08-29 17:13
閱讀 1614·2019-08-29 11:30