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 读取页面load get post ajax 四种方式代码写法
Apr 02 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
javascript上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
js中事件的处理与浏览器对象示例介绍
Nov 29 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
TableSort.js表格排序插件使用方法详解
Feb 10 Javascript
jQuery查找dom的几种方法效率详解
May 17 jQuery
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
JavaScript中的执行环境和作用域链
Sep 04 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中的加密功能
2006/10/09 PHP
php实现文件上传基本验证
2020/03/04 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
VUEX-action可以修改state吗
2019/11/19 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
2014年幼儿园个人工作总结
2014/11/10 职场文书
北京颐和园导游词
2015/01/30 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
PHP获取学生成绩的方法
2021/11/17 PHP
解决Redis启动警告问题
2022/02/24 Redis
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技