vue文件目录结构详解(一)---基础配置
参考文献:
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文件目录结构详解(一)---基础配置相关推荐
- vue 文件目录结构详解
项目简介 基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next.scss 等最新语言特性.项目包含: 基础库: vue.js.vue-router.vu ...
- HDFS文件目录结构详解
Namenode中主要存储fsimage和editlog文件,Datanode中主要存储数据块blk文件.下面分别介绍Namenode和Datanode中的文件存储结构. 文章目录 1 Namenod ...
- 抽了一包华子才写出来的linux 文件目录结构详解
文章末尾给大家留下了大量的福利 前言 今天笔者想和大家聊聊linux操作系统的文件目录结构,废话呢笔者也不想多说直接进入正文吧,希望这一篇文章能够更好的帮助大家了解到linux操作系统的文件目录结构. ...
- Linux文件目录结构详解
目录结构及主要内容 "/"根目录部分有以下子目录: /usr 目录包含所有的命令.程序库.文档和其它文件.这些文件在正常操作中不会被改变的.这个目录也包含你的Linux发行版本的主 ...
- haproxy mysql配置文件详解_HAProxy基础配置-haproxy的配置文件说明
defaults [] 默认配置项,针对以下的frontend.backend和lsiten生效,可以多个name. defaults常用的配置参数: option redispatch 当serve ...
- C语言循环结构详解【基础知识点+例子】
循环结构 for循环 表达式结构: for(表达式1:表达式2:表达式3) {语句: } 表达式1:设置初始条件,只执行一次.可以为零个,一个,多个变量设置初值: 表达式2:是循环条件表达式,用来判断 ...
- 【Vue】Vue-cli(脚手架)的目录结构详解(转载)
一.图简单说明下各个目录都是干嘛的: 总体框架:一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可. 四.文件结构细分 1.b ...
- 九、SpringCloud基础微服务结构详解
技术总结 架构图 一.系统架构演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA, ...
- vue.js2.0 java_详解vite2.0配置学习(typescript版本)
介绍 尤于溪的原话. vite与 Vue CLI 类似,vite 也是一个提供基本项目脚手架和开发服务器的构建工具. vite基于浏览器原生ES imports的开发服务器.跳过打包这个概念,服务端按 ...
最新文章
- 石川es6课程---8、字符串
- hibernate 高级查询 query 或查询 or ,Restrictions
- FreeNOS源码编译
- 六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离
- python在城市规划中的运用_城市设计在城市规划管理中的运用
- 微软2017校招笔试题3 registration day
- 共享单车变“私有”、被毁、被盗:用户们都看不下去了,举报!
- 95-10-140-启动-权限
- 喜庆红色主题新年春节晚会年会背景素材(PSD分层格式)
- 把list清空和赋值null对内存释放的区别
- linux 查看新增文件夹记录_微信7.0.23测试版,新增查看访客记录,朋友圈内容能折叠?...
- 酷炫的外部开启Activity新姿势
- lingo17.0软件工具
- 常用Win32 API函数
- java中implement_java中 implement和extends的作用和区别详细解释
- python爱意满满_抖音ohbaby你就是我最想要的是什么歌 歌曲分享
- cc1101初始化c语言程序,STC89C52单片机驱动CC1101无线模块的接收C语言程序
- javascript/js 判断是否安装flash player插件,提示安装方法。
- MDM结算分录后无法再进行更改
- presson绘图练习