更标准的 vue 目录结构

81 篇文章 0 订阅
33 篇文章 0 订阅
想重构下 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


 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值