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 相关文章推荐
js脚本学习 比较实用的基础
Sep 07 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
Oct 24 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 Javascript
在AngularJS框架中处理数据建模的方式解析
Mar 05 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 Javascript
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
vue的token刷新处理的方法
Jul 17 Javascript
vue绑定事件后获取绑定事件中的this方法
Sep 15 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验证码(支持中文)
2007/02/14 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
Django之模板层的实现代码
2019/09/09 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Django URL参数Template反向解析
2020/11/24 Python
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
开会迟到检讨书
2014/01/08 职场文书
分层教学实施方案
2014/03/19 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
项目经理任命书
2014/06/04 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
党员证明模板
2015/06/19 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
mysql 获取时间方式
2022/03/20 MySQL
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL
Moment的feature导致线上bug解决分析
2022/09/23 Javascript