Vue完整项目构建(进阶篇)


Posted in Javascript onFebruary 10, 2018

前置条件:

  1. 熟悉使用 Javascript + HTML5 + css3。
  2. 理解 ES2015 Module 模块(export、import、export-default)。
  3. 了解 nodejs 基础知识,npm 常用命令,以及 npm script 使用 (vue 项目中使用 npm 进行包管理)。
  4. 了解 webpack 打包工具 (常用配置选项以及 loader 概念)。(webpack webpack.github.io/ 是一个模块打包工具。它将一堆文件中的每个文件都作为一个模块,找出它们的依赖关系,将它们打包为可部署的静态资源。webpack 的使用也需要 npm 的安装方式)。

开始安装:

使用 vue-cli 构建大型单页应用:vue.js 的脚手架工具。

执行下述代码,即可完成项目基础构建(已配置好 webpack、依赖包的安装、基本目录的生成)。

# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
# 安装依赖,走你
$ cd my-project
$ npm install
$ npm run dev

主要目录:

├── build // webpack的基本配置、开发环境配置、生产环境配置
 ├── config // 路径、端口以及反向代理配置
 ├── dist // webpack打包后的静态资源
 ├── node_modules // npm安装的依赖包
 ├── src // 前端主文件
 │ ├── assets // 静态资源
 │ │ ├── font
 │ │ ├── img
 │ │ └── scss
 │ ├── components // 单个组件
 │ │ ├── xxx.vue // 单文件组件
 │ ├── router // 路由配置
 │ ├── store // 全局变量
 │ ├── App.vue // App组件
 │ ├── main.js 主入口文件
 ├── static // 静态文件
 ├── .babelrc // babel的配置项
 ├── .editorconfig // 编辑器的配置项
 ├── .gitignore // 会忽略语法检查的目录
 ├── index.html // 入口页面
 ├── package.json // 项目的描述和依赖

package.json文件说明:项目的描述和依赖

1. scripts:编译项目的一些命令

例:执行 npm run dev ,即执行 scripts 中对应的 node build/dev-server.js

2. dependencies:项目发布时的依赖

例:执行 npm install wx --save ,即安装依赖模块 wx。

3. devDependencies:项目开发时的依赖

例:执行 npm install sass --save-dev ,即安装依赖模块 sass。

附:npm 相关说明:

npm 为 Node.js 版本管理和依赖包管理工具,通过 node 环境来安装前端构建项目所需依赖包。

npm 安装下载速度过慢,使用淘宝镜像 cnpm install 快速安装。设置方法:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

项目加载过程:

Vue完整项目构建(进阶篇) 

1. index.html 页面

当前构建项目为 SPA (单页面应用),index.html 页面即为入口页面,进行meta 等相关页面配置。

​该页面的 <div id="app"></div> 挂载了主组件。

2. main.js:主入口文件

​注: 在 webpack.base.config 中设置 -> entry: { app: './src/main.js'}

​该文件初始化 vue 实例并引入相应模块 (引入前需确认在 package.json 中进行配置并安装),附 main.js 引入及说明:

​ import Vue from 'vue' // 引入vue
​ import App from './App' // 引入主组件App.vue
​ import router from './router' // 引入路由配置文件
​ import axios from 'axios' // 引入网络请求工具axios

3. App.vue:主组件

​在 index.html 入口页面中挂载了主组件,并在 main.js 主入口文件中引入了主组件。

​创建了其他组件 (例: /src/components/xxx.vue )后,通过路由配置即可渲染在当前主组件中。

4. 路由配置 vue-router

​路由配置:将组件 (components) 映射到路由 (routes),然后告诉 vue-router 在哪里渲染它们

npm install vue-router
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
// 1.定义(路由)组件:import (当前应用中为单文件组件)。
import Home from '../components/Home.vue'
// 2. 定义路由并创建 router 实例,然后传 `routes` 配置
// 每个路由应该映射一个组件。
var router = {}
export default router = new Router({
 routes: [
 {
 path: '/',
 name: 'home',
 component: Home
 }
 ]
})
// 3. 在main.js主入口文件中创建和挂载根实例。
// 记得要通过 router 配置参数注入路由,
// 从而让整个应用都有路由功能
new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App }
})
// 现在,应用已经启动了!

总结

以上所述是小编给大家介绍的Vue完整项目构建,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
Aug 04 Javascript
js播放wav文件(源码)
Apr 22 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
jQuery中removeAttr()方法用法实例
Jan 05 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
Oct 12 Javascript
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
vue视频播放暂停代码
Nov 08 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
Nov 11 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
Jul 27 Javascript
JS简单获得节点元素的方法示例
Feb 10 #Javascript
JS简单添加元素新节点的方法示例
Feb 10 #Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 #Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 #jQuery
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
Feb 10 #Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 #Javascript
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 #Javascript
You might like
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
React实现轮播效果
2020/08/25 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
python 下载文件的多种方法汇总
2020/11/17 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
数控技术应届生求职信
2013/11/13 职场文书
生产部厂长助理职位说明书
2014/03/03 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS