@
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 的文档库 由 采用 进行许可。基于上的作品创作。本许可协议授权之外的使用权限可以从 处获得。