vue2.x+webpack快速搭建前端项目框架详解


Posted in Javascript onNovember 30, 2017

一、本文将分享如何快速搭起基于webpack+vue的前端项目框架,利用vue的自己的脚手架工具vue-cli搭建起基本的环境配置,再通过npm包管理工具引入相应的依赖来完善项目的各种依赖框架。下面是具体实操。

二、基本命令操作。

1.在开发之前需要首先安装node.js,直接百度搜索或者在其中文官网也可以下载http://nodejs.cn/download/

在装完node之后npm包管理工具也自动的安装好,安装完之后,在命令行输入node -v或者npm -v,出现版本号说明安装成功。如下图所示:

vue2.x+webpack快速搭建前端项目框架详解

2.在使用npm之前,最好把镜像换成淘宝的,长久使用,跑一下命令:npm config set registry https://registry.npm.taobao.org,

替换成功后跑npm config get registry命令显示淘宝镜像路径的话就代表替换成功。

vue2.x+webpack快速搭建前端项目框架详解

3.第二步全局安装vue-cli,在命令窗口输入npm install -g vue-cli,然后跑vue -V出现版本号证明安装成功。

vue2.x+webpack快速搭建前端项目框架详解

4.开始生成项目,在本地硬盘找一个目录存放代码,然后打开命令行cd切换到相应的路径下,然后跑 vue init webpack Vue-Project(项目名称)

vue init webpack Vue-Project(项目名称)

vue2.x+webpack快速搭建前端项目框架详解

5.输入cd Vue-Project  然后安装依赖npm install, 如果平常时开发就跑npm run dev(本地开发跑代码),如果需要打包则跑npm run build。

vue2.x+webpack快速搭建前端项目框架详解

6.项目默认监听的是80端口,容易跟其他应用引起端口冲突,所以在项目下打开config文件夹,打开index.js,把端口改为8888,这样就避免冲突了,

vue2.x+webpack快速搭建前端项目框架详解

7.最后重新跑指令npm run dev   ,然后再地址栏输入http://localhost:8888,就会出现相应的页面。

vue2.x+webpack快速搭建前端项目框架详解

三、添加相应的框架以及依赖

1.引入sass预编译工具加快编码速度,跑命令npm install node-sass --save-dev, npm install sass-loader --save-dev,如果node-sass比较难装的话可以换成cnpm来下载依赖,具体可百度下做法。

操作:

在components目录下新建一个header的目录,新建两个文件header.vue  header.scss,然后引入到app.vue中使用,因为vue讲的是模块化开发,所以我喜欢把样式跟组件放到一个文件夹里跟其他模块区分,

vue2.x+webpack快速搭建前端项目框架详解

App.vue:

vue2.x+webpack快速搭建前端项目框架详解

header.scss:

vue2.x+webpack快速搭建前端项目框架详解

这样就证明sass 是安装成功了。

 2.引入axios接口请求框架,跑命令npm install axios --save-dev,npm install qs;

 然后在src目录下新建一个http.js文件进行接口请求的相关配置,

import Vue from 'vue'
import axios from 'axios'
import Qs from 'qs';


var instance = axios.create({
 //baseURL: 'https://some-domain.com/api/',
 timeout: timeout,
 responseType: 'json', // default,
 //headers: {'apikey': 'foobar'},
 transformRequest:function(data,headers){
  //为了避免qs格式化时对内层对象的格式化先把内层的对象转为
  //由于使用的form-data传数据所以要格式化
  if (typeof data == 'string') {
  
   headers.post['Content-Type'] = "application/json; charset=utf-8";
  
  }
  else if(!(data instanceof FormData)){
  headers.post['Content-Type'] = "application/x-www-form-urlencoded";
  
   for(let key in data){
   if(data[key]===undefined){
    data[key]=null;
   }
   }
   data = Qs.stringify(data);
 }

  return data;
 }
});
export default instance; 

Vue.prototype.$http=instance;

在使用请求接口的时候直接可以这样用:(具体用法可以看下官方文档)

this.$http.get(url).then((res)=>{
})

3.引入elementUI,跟人感觉elementUI是比较好用的vue组件UI,很多东西不用自己去写,推荐使用,跑指令npm install element-ui --save,

然后在main.js中引入使用

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App.vue'

Vue.use(ElementUI)

当然也可以按需引入,想用什么组件就引入什么组件,不要全部引入,这样减少体积。

4.引入vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

安装:npm install vuex --save

具体使用这里不做详细介绍,感兴趣的可以看下中文官网:https://vuex.vuejs.org/zh-cn/。

Javascript 相关文章推荐
运用jquery实现table单双行不同显示并能单行选中
Jul 25 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
jquery插件之easing使用
Aug 19 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
BootStrap智能表单实战系列(七)验证的支持
Jun 13 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
bootstrap table实现合并单元格效果
Dec 24 Javascript
React优化子组件render的使用
May 12 Javascript
javascript function(函数类型)使用与注意事项小结
Jun 10 Javascript
小程序接口的promise化的实现方法
Dec 11 Javascript
three.js欧拉角和四元数的使用方法
Jul 26 Javascript
React Ant Design树形表格的复杂增删改操作
Nov 02 Javascript
Vue+Vux项目实践完整代码
Nov 30 #Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 #Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 #Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 #Javascript
微信小程序实战篇之购物车的实现代码示例
Nov 30 #Javascript
微信小程序支付及退款流程详解
Nov 30 #Javascript
windows下更新npm和node的方法
Nov 30 #Javascript
You might like
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python处理csv数据的方法
2015/03/11 Python
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
Python实现图片转字符画的示例
2017/08/22 Python
python3多线程知识点总结
2019/09/26 Python
python制作微博图片爬取工具
2021/01/16 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
出国留学自荐信
2013/10/25 职场文书
建筑行业的大学生自我评价
2013/12/08 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书