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 风格的HTML文本转义
Jul 01 Javascript
jquery调用asp.net 页面后台的实现代码
Apr 27 Javascript
jQuery源码分析之Callbacks详解
Mar 13 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 Javascript
js使用i18n实现页面国际化的方法
May 09 Javascript
[js高手之路]寄生组合式继承的优势详解
Aug 28 Javascript
深入理解Vue.js轻量高效的前端组件化方案
Dec 10 Javascript
监听element-ui table滚动事件的方法
Mar 26 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
解决antd的Form组件setFieldsValue的警告问题
Oct 29 Javascript
对vue生命周期的深入理解
Dec 03 Vue.js
JavaScript Dom实现轮播图原理和实例
Feb 19 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 autoload机制的详解
2013/06/09 PHP
php实现图片添加水印功能
2014/02/13 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
php编程每天必学之验证码
2016/03/03 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
PHP实现的抓取小说网站内容功能示例
2019/06/27 PHP
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
python实现学生信息管理系统
2020/04/05 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
铣床操作工岗位职责
2014/06/13 职场文书
员工教育培训协议书
2014/09/27 职场文书
2014年环保工作总结
2014/11/26 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python
Golang bufio详细讲解
2022/04/21 Golang
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技