博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue小白课(二)——项目结构解析(Vue2.x)
阅读量:7218 次
发布时间:2019-06-29

本文共 4757 字,大约阅读时间需要 15 分钟。

@

create by db on 2019-1-10 16:28:10

Recently revised in 2019-1-15 11:46:47

Hello 小伙伴们,如果觉得本文还不错,麻烦点个赞或者给个 star,你们的赞和 star 是我前进的动力!

 查阅网上诸多资料,并结合自己的学习经验,写下这篇Vue学习笔记,以记录自己的学习心得。现分享给大家,以供参考。

 作为一只前端菜鸟,这是我掘金分享的第五篇文章。如有不足,还请多多指教,谢谢大家。

前言

 在上一篇项目搭建文章中,我们已经下载安装了node环境以及vue-cli,并且已经成功构建了一个vue-cli项目——见。那么接下来,我们来梳理一下vue-cli项目的结构。

 参考文献:

正文

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 ---------------------------- 静态资源目录,如图片、字体等。├── .babelrc--------------------------------- babel配置文件├── .editorconfig---------------------------- 编辑器配置├── .gitignore------------------------------- 配置git可忽略的文件├── index.html ------------------------------ 	首页入口文件,你可以添加一些 meta 信息或统计代码啥的。├── package.json ---------------------------- node配置文件,记载着一些命令和依赖还有简要的项目描述信息 ├── .README.md------------------------------- 项目的说明文档,markdown 格式。想怎么写怎么写,不会写就参照github上star多的项目,看人家怎么写的复制代码

 在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组件来填充

      
vuedemo
复制代码

App.vue——[根组件]

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

复制代码

【template】

 其中模板只能包含一个父节点,也就是说顶层的div只能有一个(例如上面代码,父节点为#app的div,其没有兄弟节点)

<router-view></router-view>是子路由视图,后面的路由页面都显示在此处

 打一个比喻吧,<router-view>类似于一个插槽,跳转某个路由时,该路由下的页面就插在这个插槽中渲染显示

【script】

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

【style】

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

<style scoped></style>

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

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

复制代码

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: '
', 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 模板文件

这是我自己做的一个vue模板文件,符合Eslint规则

复制代码

总结

 vue-cli给创建vue项目提供了很大的便利。但是同时大量的第三方库的使用,会让打包后的js变的很大,所以还是要熟悉配置,熟悉第三方插件的使用,才可以开发更高效的开发web应用。这里把vue-cli的一些相关内容给自己做一个总结,便于以后查阅。也是希望对其他开发者有帮助。有不足之处请指正。

 路漫漫其修远兮,与诸君共勉。

 祝大家2019更上一层楼!

后记:Hello 小伙伴们,如果觉得本文还不错,记得点个赞或者给个 star,你们的赞和 star 是我编写更多更丰富文章的动力!

db 的文档库 由 采用 进行许可。
基于上的作品创作。
本许可协议授权之外的使用权限可以从 处获得。

转载于:https://juejin.im/post/5c3d65df518825258604df96

你可能感兴趣的文章
Docker Compose文件详解 V2
查看>>
Memcached的原理与应用(未完)
查看>>
基于 Confluence 6 数据中心的 SAML 单点登录设置你的身份提供者
查看>>
mysql总结
查看>>
Navicat for MySQL版本更新至v11.2.12,修复多项问题|附下载
查看>>
整理 JAVA中的IO流 (字符流和字节流两个大类)
查看>>
uefi与win8 (根据网络资料整理)
查看>>
Eclipse优化
查看>>
Log4j tutorial with Tomcat examples
查看>>
Kong 网关
查看>>
三层结构视频中的DBHelper.cs
查看>>
[转载] 信息系统项目管理师视频教程——18 项目沟通管理
查看>>
在Windows下建立QT开发环境
查看>>
Jedis、JedisPool、ShardedJedis和ShardedJedisPool,java对redis的基本操作
查看>>
[转载] 致命伴侣
查看>>
HTML5 localStorage本地存储实际应用举例
查看>>
Scala访问修饰符
查看>>
实习感悟
查看>>
产品经理网站小结
查看>>
Bootstrap 附加导航插件
查看>>