1033 0bfbf5aeb1 xiugai | 6 月之前 | |
---|---|---|
docs | 6 月之前 | |
public | 6 月之前 | |
src | 6 月之前 | |
.browserslistrc | 6 月之前 | |
.editorconfig | 6 月之前 | |
.eslintrc.js | 6 月之前 | |
.gitattributes | 6 月之前 | |
.gitignore | 6 月之前 | |
LICENSE | 6 月之前 | |
README.md | 6 月之前 | |
SECURITY.md | 6 月之前 | |
babel.config.js | 6 月之前 | |
package-lock.json | 6 月之前 | |
package.json | 6 月之前 | |
vue.config.js | 6 月之前 | |
yarn.lock | 6 月之前 |
基于vue-cli编写开发
整个项目的目录结构如下,具体包含内容后续会进行详细介绍和解释
├── public // 公共资源,第三方,不打包资源
├── src // 源代码
│ ├── api // 所有请求相关资源
│ ├── assets // 静态资源,会打包的资源
│ ├── common // 通用配置,工具,mixins
│ ├── components // 全局公用组件
│ ├── mock // mock server 数据
│ ├── plugin // 自定义插件,注入指令,全局mixin
│ ├── router // 路由
│ ├── store // 全局 store
│ ├── views // views 视图显示(错误页面,布局,登录)
│ ├── App.vue // 入口页面
│ └── main.js // 入口文件 加载组件 初始化等
├── .eslintrc.js // eslint 配置项
├── .gitignore // git 忽略项
├── babel.config.js // babel 配置项
├── vue.config.js // vue-cli3集成配置项
└── package.json // package.json
# 克隆项目
git clone https://github.com/***.git
# 安装依赖
yarn install
# 本地开发 启动项目
yarn run serve
# OR vue ui 图形化界面启动
vue ui
文件或文件夹的命名遵循以下原则:
属于components文件夹下的子文件夹,使用大写字母开头的PascalBase风格
其他文件夹统一使用kebab-case的风格
全局公共组件:/src/components示例
- [components]
- [Breadcrumb]
- index.vue
- [Hamburger]
- index.vue
- [SvgIcon]
- index.vue
业务页面内部封装的组件:以 /src/views/layout/components示例
-[src]
- [views]
- [layout]
- [components]
- [Sidebar]
- index.vue
- Item.vue
- SidebarItem.vue
- AppMain.vue
- index.js
- Navbar.vue`
index.js 中导出组件方式如下:
export { default as AppMain } from './AppMain'
export { default as Navbar } from './Navbar'
export { default as Sidebar } from './Sidebar'
看index.js中最后一行代码,不难发现,为什么components下的子文件夹要使用PascalCase命名:
export { default as Sidebar } from './sidebar' // 使用kebab-case命名的文件夹
export { default as Sidebar } from './Sidebar' // 使用 PascalCase命名的文件夹
对于组件的导出/导入,我们一般都是使用大写字母开头的PascalCase风格,
以区别于.vue组件内部的其他camelCase声明的变量,
[Sidebar]作为【侧边栏组件】的一个整体被导出,文件夹的命名也采用PascalCase,
有利于index.js中export时的前后统一,避免很多情况下不注意区分大小写
总结一下:
文件夹:
文件:
style样式文件:
系统概况 数据格式:
{
"code": 0,
"data": {
"label": "this is mock value"
}
}