更標準的 vue 目錄結構

想重構下 Vue 的目錄結構,希望更標準點,以後項目開發,都可以有一個大概的標準。

搜索了幾篇文章:
	https://forum.vuejs.org/t/vue/45718
	// 國人寫的這篇好像很不錯
	https://github.com/JasonBai007/vue-seed
	// 裏面提到的這個
	https://linjinze999.github.io/vue-llplatform/request.html
	https://itnext.io/how-to-structure-a-vue-js-project-29e4ddc1aeeb
	https://vueschool.io/articles/vuejs-tutorials/structuring-vue-components/
	https://www.erol.si/2018/03/large-scale-vuejs-application-structure/

	// vuex 目錄結構
	https://vuex.vuejs.org/guide/structure.html
	https://medium.com/3yourmind/large-scale-vuex-application-structures-651e44863e2f


最後總結的目錄,打算以後項目使用:
	main.js

	App.vue

	api - 頁面所有的 API 請求

	store - Vuex
		mutation-types.js
		modules/
		index.js

		// 這3個也可以放置在 index.js 中,除非特別多內容,我們可以拆分出來(我們項目暫時不使用)
		actions.js
		mutations.js
		getters.js

	routes - VueRouter(命名參照 laravel 路由目錄)
		index.js

	components - 下面是根據參考文章來進行劃分的,我們項目裏不一定要按這個來劃分
		ui/
		layout/
		common/
		domain/ - 按域名劃分

	views|pages(我打算使用 pages,不是 MVC,只是 vue 頁面組件,用 pages 感覺好點)

	assets - 資源(css、images、fonts等)
		css
		sass
		images
		fonts
		data|json - 一些 json 數據,例如:城市級聯數據。(data 作爲數據來講,本身就是複數,它的單數是:datum,普及下😋)

		// 有些第三方 js 庫,不在 node 倉庫中,需要我們直接引入,定義了以下目錄
		libs - js 類庫(第三方類庫,只包含 js)
		components - js 組件(第三方類庫,包含 js 和 css)
		frameworks - js 框架(第三方框架,例如:mui, layui 等)

	configs - 配置(我自己項目中,引入的第三方配置放在這裏),例如:
		vee-validate.js
			// 引入語言包
			import zh_CN from '../locales/vee-validate/zh_CN';

			export default {

			    // vee-validate 方式
			    locale: 'zh_CN',

			    // i18n 方式
			    // i18nRootkey: 'validations',
			    // i18n: new VueI18n({locale: 'zh_CN'}),
			    dictionary: {
			        zh_CN
			    },
			    validity: true,
			};

		vue-html5-editor.js
			...

	extends - 擴展(我自己項目中,引入的第三方配置放在這裏),例如:
		vee-validate
			add-methods.js
			validate.js

	directives

	filters

	mixins

	fragments - 有用的代碼段

	utils - 公共函數

	lang|translations|locales - 語言包(打算使用 lang,同 laravel 一致)

	mock - 生成隨機數據(Mock.js),模擬 ajax 請求數據

	bus - 總線|更新(這個目錄不懂,我先不寫了)

最終的目錄結構:
	main.js
	App.vue
	api/
	store/
		mutation-types.js
		index.js
		modules/
	routes
		index.js
	components
	pages
	assets
		css
		sass
		images
		fonts
		data
		libs
		components
		frameworks
	configs
	extends
	directives
	filters
	mixins
	fragments
	utils
	lang
	mock


laravel 框架的前端腳手架,無論是 vue 還是 react,默認生成的 js 代碼都在 resources/js 下,css 等代碼,和 js 平級,也就是和框架中的 lang 和 view 是同級目錄,看了幾個項目中,都是在 resources 下放置了 assets 目錄,來存儲 js 和 css 等其他目錄

此外,對於 laravel 的前端腳手架,php artisan preset bootstrap|vue|react|none,我們還是輕易別使用,尤其是 none,會移除前端腳手架代碼,我看了下還會刪除 public/css 和 public/js 編譯後的文件。
我們還是按上面總結的目錄來重新規劃 vue 代碼,我打算直接在 resources 下創建 vue/、react/ 目錄,因爲項目中,可能2種框架都會使用,且不要將內部的 js 和 css 放到和 lang、views 同級目錄,混亂。
對於 laravel 的 Laravel Mix,我們還是可以使用的,我們完全自己來自定義配置

laravel 前端腳手架源碼目錄,有興趣可以簡單看下源碼:
	vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章