参考文献:

vue-cli入门(二)——项目结构 | 思否-Reachel
Vue-cli创建vue项目以及配置文件梳理|思否-AshleyLv
Vue系列之WebPack与Eslint | 充电实践

正文


Vue项目结构一览

├── build --------------------------------- 项目构建(webpack)相关配置文件,配置参数什么的,一般不用动
│   ├── build.js --------------------------webpack打包配置文件
│   ├── check-versions.js ------------------------------ 检查npm,nodejs版本
│   ├── dev-client.js ---------------------------------- 设置环境
│   ├── dev-server.js ---------------------------------- 创建express服务器,配置中间件,启动可热重载的服务器,用于开发项目
│   ├── utils.js --------------------------------------- 配置资源路径,配置css加载器
│   ├── vue-loader.conf.js ----------------------------- 配置css加载器等
│   ├── webpack.base.conf.js --------------------------- webpack基本配置
│   ├── webpack.dev.conf.js ---------------------------- 用于开发的webpack设置
│   ├── webpack.prod.conf.js --------------------------- 用于打包的webpack设置
├── config ---------------------------------- 配置目录,包括端口号等。我们初学可以使用默认的。
│   ├── dev.env.js -------------------------- 开发环境变量
│   ├── index.js ---------------------------- 项目配置文件
│   ├── prod.env.js ------------------------- 生产环境变量
│   ├── test.env.js ------------------------- 测试环境变量
├── node_modules ---------------------------- npm 加载的项目依赖模块
├── src ------------------------------------- 我们要开发的目录,基本上要做的事情都在这个目录里。
│   ├── assets ------------------------------ 静态文件,放置一些图片,如logo等
│   ├── components -------------------------- 组件目录,存放组件文件,可以不用。
│   ├── main.js ----------------------------- 主js
│   ├── App.vue ----------------------------- 项目入口组件,我们也可以直接将组件写这里,而不使用 components 目录。
│   ├── router ------------------------------ 路由
├── static ---------------------------- 静态资源目录,如图片、字体等。
├── index.html ------------------------------   首页入口文件,你可以添加一些 meta 信息或统计代码啥的。
├── package.json ---------------------------- node配置文件,记载着一些命令和依赖还有简要的项目描述信息
├──  .README.md------------------------------- 项目的说明文档,markdown 格式。想怎么写怎么写,不会写就参照github上star多的项目,看人家怎么写的
├── .xxxx文件:这些是一些配置文件,包括语法配置,git配置等
│   ├── .babelrc--------------------------------- babel配置文件
│   ├──  .editorconfig---------------------------- 编辑器配置
│   ├──  .eslintignore------------------------------- 配置需要或略的路径,一般build、config、dist、test等目录都会配置忽略
│   ├──  .eslintrc.js ------------------------------- 配置代码格式风格检查规则
│   ├──  .gitignore------------------------------- 配置git可忽略的文件
│   ├──  .postcssrc.js ------------------------------- css转换工具

在webpack的配置文件里,设置了main.js是入口文件,我们的项目默认访问index.html,这个文件里面<div id="app"></div>和App.vue组件里面的容器完美的重合了,也就是把组件挂载到了index页面,然后我们只需要去建设其他组件就好了,在App组件中我们也可以引入,注册,应用其他组件,可以通过路由将其他组件渲染在App组件,这样我们就只需要去关注每个组件的功能完善。
就是说vue的默认页面是index.html,index中的<div id="app"></div>挂载了App.vue这个大组件,然后所有的其他子组件(hello.vue等)都归属在App.vue这个主组件下。


主要文件详解

src——[项目核心文件]

在vue-cli的项目中,其中src文件夹是必须要掌握的,因为基本上要做的事情都在这个目录里。

index.html——[主页]

index.html如其他html一样,但一般只定义一个空的根节点,在main.js里面定义的实例将挂载在根节点下,内容都通过vue组件来填充

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>vuedemo</title></head><body><!-- 定义的vue实例将挂载在#app节点下 --><div id="app"></div></body>
</html>

App.vue——[根组件]

一个vue页面通常由三部分组成:模板(template)、js(script)、样式(style)

<!-- 模板 -->
<template><div id="app"><img src="./assets/logo.png"><router-view></router-view></div>
</template><!-- script -->
<script>
export default {name: 'app'
}
</script><!-- 样式 -->
<style>
#app {font-family: 'Avenir', Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

【template】

其中模板只能包含一个父节点,也就是说顶层的div只能有一个(例如上面代码,父节点为#app的div,其没有兄弟节点)
<router-view></router-view>是子路由视图,后面的路由页面都显示在此处
打一个比喻吧,<router-view>类似于一个插槽,跳转某个路由时,该路由下的页面就插在这个插槽中渲染显示

【script】

vue通常用es6来写,用export default导出,其下面可以包含数据data,生命周期(mounted等),方法(methods)等,具体语法请看vue.js文档。

【style】

样式通过style标签包裹,默认是影响全局的,如需定义作用域只在该组件下起作用,需在标签上加scoped.

如要引入外部css文件,首先需给项目安装css-loader依赖包,打开cmd,进入项目目录,输入npm install css-loader,回车。

安装完成后,就可以在style标签下import所需的css文件,例如:

<style>import './assets/css/public.css'
</style>

main.js——[入口文件]

main.js主要是引入vue框架,根组件及路由设置,并且定义vue实例,下面的 components:{App}就是引入的根组件App.vue

后期还可以引入插件,当然首先得安装插件。

/*引入vue框架*/
import Vue from 'vue'
/*引入根组件*/
import App from './App'
/*引入路由设置*/
import router from './router'/*关闭生产模式下给出的提示*/
Vue.config.productionTip = false/*定义实例*/
new Vue({el: '#app',router,template: '<App/>',components: { App }
})

router——[路由配置]

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。

router文件夹下,有一个index.js,即为路由配置文件。

/*引入vue框架*/
import Vue from 'vue'
/*引入路由依赖*/
import Router from 'vue-router'
/*引入页面组件,命名为Hello*/
import Hello from '@/components/Hello'/*使用路由依赖*/
Vue.use(Router)/*定义路由*/
export default new Router({routes: [{path: '/',name: 'Hello',component: Hello}]
})

这里定义了路径为’/'的路由,该路由对应的页面是Hello组件,所以当我们在浏览器url访问http://localhost:8080/#/时就渲染的Hello组件

类似的,我们可以设置多个路由,‘/index’,'/list’之类的,当然首先得引入该组件,再为该组件设置路由。
其他配置文件

主要包括webpack的配置,项目配置,项目依赖等等。

详情可参考以下文章:

Vue-cli创建vue项目以及配置文件梳理|思否-AshleyLv


vue 模板文件

<!--  -->
<template><div/>
</template><script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
// 例如:import 《组件名称》 from '《组件路径》'export default {// import引入的组件需要注入到对象中才能使用components: {},data() {// 这里存放数据return {}},// 监听属性 类似于data概念computed: {},// 监控data中的数据变化watch: {},// 生命周期 - 创建完成(可以访问当前this实例)created() {},// 生命周期 - 挂载完成(可以访问DOM元素)mounted() {},beforeCreate() {}, // 生命周期 - 创建之前created() {}, // 生命周期 - 创建之后beforeMount() {}, // 生命周期 - 挂载之前mounted() {}, //生命周期 - 挂载之后beforeUpdate() {}, // 生命周期 - 更新之前updated() {}, // 生命周期 - 更新之后beforeDestroy() {}, // 生命周期 - 销毁之前destroyed() {}, // 生命周期 - 销毁完成activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发// 方法集合methods: {}
}</script>
<style lang='less' scoped>
//@import url(); 引入公共css类</style>

vue文件目录结构详解(一)---基础配置相关推荐

  1. vue 文件目录结构详解

    项目简介 基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next.scss 等最新语言特性.项目包含: 基础库: vue.js.vue-router.vu ...

  2. HDFS文件目录结构详解

    Namenode中主要存储fsimage和editlog文件,Datanode中主要存储数据块blk文件.下面分别介绍Namenode和Datanode中的文件存储结构. 文章目录 1 Namenod ...

  3. 抽了一包华子才写出来的linux 文件目录结构详解

    文章末尾给大家留下了大量的福利 前言 今天笔者想和大家聊聊linux操作系统的文件目录结构,废话呢笔者也不想多说直接进入正文吧,希望这一篇文章能够更好的帮助大家了解到linux操作系统的文件目录结构. ...

  4. Linux文件目录结构详解

    目录结构及主要内容 "/"根目录部分有以下子目录: /usr 目录包含所有的命令.程序库.文档和其它文件.这些文件在正常操作中不会被改变的.这个目录也包含你的Linux发行版本的主 ...

  5. haproxy mysql配置文件详解_HAProxy基础配置-haproxy的配置文件说明

    defaults [] 默认配置项,针对以下的frontend.backend和lsiten生效,可以多个name. defaults常用的配置参数: option redispatch 当serve ...

  6. C语言循环结构详解【基础知识点+例子】

    循环结构 for循环 表达式结构: for(表达式1:表达式2:表达式3) {语句: } 表达式1:设置初始条件,只执行一次.可以为零个,一个,多个变量设置初值: 表达式2:是循环条件表达式,用来判断 ...

  7. 【Vue】Vue-cli(脚手架)的目录结构详解(转载)

    一.图简单说明下各个目录都是干嘛的: 总体框架:一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可. 四.文件结构细分 1.b ...

  8. 九、SpringCloud基础微服务结构详解

    技术总结 架构图 一.系统架构演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA, ...

  9. vue.js2.0 java_详解vite2.0配置学习(typescript版本)

    介绍 尤于溪的原话. vite与 Vue CLI 类似,vite 也是一个提供基本项目脚手架和开发服务器的构建工具. vite基于浏览器原生ES imports的开发服务器.跳过打包这个概念,服务端按 ...

最新文章

  1. 石川es6课程---8、字符串
  2. hibernate 高级查询 query 或查询 or ,Restrictions
  3. FreeNOS源码编译
  4. 六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离
  5. python在城市规划中的运用_城市设计在城市规划管理中的运用
  6. 微软2017校招笔试题3 registration day
  7. 共享单车变“私有”、被毁、被盗:用户们都看不下去了,举报!
  8. 95-10-140-启动-权限
  9. 喜庆红色主题新年春节晚会年会背景素材(PSD分层格式)
  10. 把list清空和赋值null对内存释放的区别
  11. linux 查看新增文件夹记录_微信7.0.23测试版,新增查看访客记录,朋友圈内容能折叠?...
  12. 酷炫的外部开启Activity新姿势
  13. lingo17.0软件工具
  14. 常用Win32 API函数
  15. java中implement_java中 implement和extends的作用和区别详细解释
  16. python爱意满满_抖音ohbaby你就是我最想要的是什么歌 歌曲分享
  17. cc1101初始化c语言程序,STC89C52单片机驱动CC1101无线模块的接收C语言程序
  18. javascript/js 判断是否安装flash player插件,提示安装方法。
  19. MDM结算分录后无法再进行更改
  20. presson绘图练习

热门文章

  1. Docker 镜像多阶段构建实战总结
  2. React ios移动端处理安全区
  3. STM32F051——USART
  4. 怎么在网站中插入天气预报,qq,发送邮件
  5. 资产上链会是区块链下个风口吗
  6. 鲜花在线销售平台的设计与实现/鲜花商城/网上花店管理系统
  7. 实用的仓库管理软件有哪些,盘点2023年5大仓库管理软件!
  8. UE4 关于远距离没有阴影的问题解决方案
  9. wu-easy-excel-starter 数据快速导入导出
  10. 附图分析运放7大经典电路