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 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
js实现鼠标点击左上角滑动菜单效果代码
Sep 06 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
javascript实现移动端上的触屏拖拽功能
Mar 04 Javascript
PhotoSwipe异步动态加载图片方法
Aug 25 Javascript
函数四种调用模式以及其中的this指向
Jan 16 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
vue登录注册实例详解
Sep 14 Javascript
深入理解redux之compose的具体应用
Jan 12 Javascript
JS实现可控制的进度条
Mar 25 Javascript
Vue如何循环提取对象数组中的值
Nov 18 Vue.js
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 session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
php 代码优化之经典示例
2011/03/24 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
js css样式操作代码(批量操作)
2009/10/09 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
新闻学专业应届生求职信
2013/11/08 职场文书
股份合作协议书范本
2014/04/14 职场文书
软件售后服务承诺书
2014/05/21 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
会议主持词结束语
2015/07/03 职场文书
歌咏比赛口号大全
2015/12/25 职场文书