从vue新建页面过程看vue项目文件调用关系
2018-09-28 16:22
369 查看
最近开始研究web前端vue框架,尝试将资料结合具体操作进行整理,以此加深印象。
1. vue项目构建过程
- 笔者使用JetBrain公司产品webstorm新建vue项目
- 第一步:官网下载安装webstorm
- 第二步:在左侧导航栏中选择Vue.js,此时右侧需进行配置: 修改文件名(初始为untitled)
- 配置node.js 简介:node是js的服务执行环境,前端常常借助 node帮助前端实现工程化。很多工具是基于node的,比如即将使用的打包工具webpack
- 若系统中并无node.js,需官网下载安装并配置环境变量
-
简介:vue-cli是vue脚手架,用于快速构建vue工程
-
可连续点击下一步使用默认配置,直至构建完成
至此,vue示例项目启动成功
2. vue项目新建页面
- 示例项目启动成功后,若新增页面,需新增.vue文件并配置路由
第一步:新增.vue文件
笔者在components目录下新增First.vue文件,内容如下
First.vue中代码如下:<template> <div><h1>{{message}}</h1></div> </template> <script> export default { name: 'First.vue', data () { return { message: 'welcome' } } } </script> <style scoped> </style>
[/code] - 第二步:配置路由
- 导入组件即First,对应下方component值
- 插入如下语句,防止访问页面时url出现的#/符号
-
如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。
- vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
- 当你使用 history 模式时,URL 就像正常的 url
- 插入url地址与组件地址映射语句
{ path: '/first', name: 'First', component: First }
[/code]
const router = new VueRouter({ mode: 'history', routes: [...] })[/code]
- 第三步:打开浏览器,输入http://localhost:8080/first
至此,页面新建成功
3. 分析调用关系
- 上一节页面新建时,界面中有个意外的图标,引发思考
既然First.vue代码中只编写了 "welcome"相关代码,那么图标从何而来呢? - 解决这个问题,需要分析vue文件中的调用关系
-
el:官方解释为实例提供挂载的元素。此处为index.html中的
<div id="app"><div>。
router:router,的简写,指向引入文件中的
routes:[]
<div id="app"></div>
此时,可知main.js文件调用关系分为三步,如图中序号
- 确定将被挂载(替换)的元素,此处为index.html中的
<div id="app"><div>
。 - 注册组件(此处只有组件App),选择其中用于替换挂载元素(第一步中的元素)的模板组件(
<App/>
),即用App.vue替换index.html中的<div id="app"><div>
。 - 注入路由器router:
模板组件(App.vue)中有
<router-view/>
,将在其中渲染路由匹配到的组件 - 注入(import)路由时指定的是router文件夹,即文件夹下所有routes
- router文件夹下此时只有index.js文件,其中
routes:[]
规定了文件地址及其url地址映射 - 根据文件地址,载入组件(First.vue),组件被渲染在
<router-view/>
中,显示在index.html中
然而追本溯源,调用关系中仍有两个问题:
- index.html为何默认显示?
其实,双击执行npm中dev时,控制台将执行如下语句:
webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
由此可见,运行时启动文件webpack.dev.conf.js,而文件中包含如下语句,规定了起始页面:
new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true }),[/code]
- main.js为何默认加载?
因为使用的脚手架工具vue-cli里用webpack来打包项目文件,webpack.dev.conf文件里还定义了webpack基础配置文件webpack.base.conf.js,定义语句如下:
const baseWebpackConfig = require('./webpack.base.conf')
而文件webpack.base.conf.js中,包含如下语句,指定了入口:
entry: { app: './src/main.js' }[/code]
至此,文件调用关系简述完毕
阅读更多相关文章推荐
- Vue-cli创建项目从单页面到多页面3-关于将打包后的项目文件不放在根目录下
- Vue项目实战(五)配置 Axios api 接口调用文件
- vue-cli新建一个项目。项目中的各个文件代表的意思
- vue-cli新建一个项目。项目中的各个文件代表的意思
- npm install含义 及vue安装启动项目时报错解决及vue建项目时各文件间的依赖关系
- JS文件使用项目文件的时候,使用的定位最好是使用调用这个JS文件的页面文件的定位。
- Vue项目调用本地的json文件
- vue新建项目,目录文件解释
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 小白初学Vue项目(一) -- src目录初始文件结构关系
- vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
- jsp页面中调用js文件去验证文本框内容
- 29讲项目实战:404页面制作+网站友情链接调用
- 齿科服务项目–前端vue-cli 多页面架构配置
- vue项目局部滚动带动整个页面滚动
- 新建java项目使用this.classLoader.getResourceAsStream方法导入xml文件时报找不到文件原因
- Android 新建项目 页面
- python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件
- .prg文件中自定义了一些过程和函数'该怎么调用?
- [置顶] vue-cli的webpack模板项目配置文件分析