使用vue-cli构建vue工程,及一些小坑的记录

算法江湖客
• 阅读 2747

这篇文章主要记录如何构建一个vue工程,及踩到过的坑
使用vue+webpack+vue-router+vuex+axios+elementUI+jQuery+一些jQuery插件

所有的代码都在github上有https://github.com/EaVanCN/vu...,这是一个门户网站的前端demo,使用假数据填充页面,持续更新中。

一、使用vue-cli创建一个vue的工程
涉及到的命令包括:

$ npm install -g vue-cli                //1
$ vue init webpack vue-project            //2
$ cd vue-project                        //3
$ npm install                            //4
$ npm run dev                            //5

1、本文使用vue-cli是通过npm来下载的,所以首先要有一个node的环境,在安装完node之后,npm就会自动安装在你的电脑中了,然后打开控制台,输入npm install -g vue-cli 全局安装vue-cli。
2、在安装完vue-cli之后,你就能够在控制台使用vue命令了,进入到想创建工程的文件夹中,输入vue init webpack-simple vue-project,会让你工程名称,描述,作者等信息,然后就会创建一个叫做vue-project的工程。
此时你会得到一个如下的目录结构。
使用vue-cli构建vue工程,及一些小坑的记录

4、Package.json中有该工程所依赖的各种包,运行npm install,会自动安装这些包。
5、最后运行npm run dev,会在你本地localhost:8080启动一个服务,你能打开浏览器访问它。

二、组件的使用
我们想对路由控制,会使用到vue-router,统一管理状态,会使用到vuex,想对页面上一些功能进行复用,也会写一些自己的组件,如何在我们的工程中使用这些组件呢?

例如使用vue-router,首先要在工程中引入vue-router,使用命令npm install vue-router --save-dev ,会从npm中下载最新版本的vue-router,并将相关信息保存在package.json中。
然后再在main.js中引入vue-router :

import VueRouter from 'Vue-router'
Vue.use(VueRouter);

这样就能使用vue-router了。
也并不是所有能从npm上下载下来的组件都能使用Vue.use(),比如axios就不行,当你使用import axios from 'axios'引入axios后,他并不能使用Vue.use(axios)来将它引入工程,对于axios来说,使用Vue.prototype.$http = axios 就可以在其他页面直接this.$http使用axios的时候。
对于自己写的后缀为.vue的组件,需要vue-loader支持,在引入vue-loader之后,就能使用自己写的组件了,vue组件的使用方法,vue官网中有相关介绍。

三、element-UI的使用
element-UI也像vue-router一样,下载之后import进工程,但同时还要import 'element-ui/lib/theme-default/index.css',使用到css文件,就要使用到css-loader和style-loader。
除此之外,element-UI中还要使用file-loader解析.woff的图标,故需要下载这几个loader,并且在webpack.config.js中配置。

 {
       test: /\.css$/,
       loader: 'style-loader!css-loader'
 },
 {
       test: /\.css$/,
       loader: 'style-loader!css-loader'
 },
 {
       test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
       loader: 'file-loader'
 },

然后就能使用element-UI了。

四、Vue引入jQuery及使用依赖jQuery的插件
使用vue这种mvvm的框架,对页面的dom操作就没有以前那么关系了,jquery也就使的少了。没用vue之前有很多使得顺手的插件,在npm上可能并没有,而且依赖jQuery,这时候就要把jQuery引到工程中来了,JQuery引到工程中来并不难,但发现并不是能在每个组件中直接使用$这个方法,也就不太好处理别的插件和jQuery的依赖关系。
这时候,可以创建一个jquery-vendor.js文件,里面内容为:

import $ from 'jquery'
window.$ = $
window.jQuery = $
export default $

然后再在main.js中import该文件import $ from '/jquery-vendor.js',这样就可以全局使用$了。将这个import放在上面,也就能够处理插件与jQuery的依赖了。例如我使用了SuperSlider,直接将它的js放在assist/js中,然后再在inedx.html中使用script标签引入就行。在每个组件中都能够使用该插件了。

以后别的坑再进行记录。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
3年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这