Vue使用vue-cli创建项目


Posted in Javascript onSeptember 01, 2017

本文介绍了Vue使用vue-cli创建项目,分享给大家,具体如下:

vue-cli 是一个官方发布vueJS项目脚手架:https://github.com/vuejs/vue-cli

我创建的模板项目:https://github.com/Aleczhang1992/my-vue-project/tree/dev

Vue使用vue-cli创建项目

Vue使用vue-cli创建项目

一、步骤

1.要求已安装Node.js (>=4.x, 6.x preferred) and Git.

可以设置cnpm可以提升依赖包下载速度:

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装vue-cli

sudo npm install -g vue-cli

2.创建模板项目

命令格式:vue init <template-name> <project-name>

其中template-name是可选模板项,project-name是创建项目的名称。目前提供一下几种:

Vue使用vue-cli创建项目

也可以使用自定义的模板,可以来自远端托管仓库或本地。

选用webpack模板项目:https://github.com/vuejs-templates/webpack

二、Mint_UI框架的使用

1.完整引入

在 main.js 中写入以下内容:

import Vue from 'vue'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
import App from './App.vue'

Vue.use(MintUI)

new Vue({
 el: '#app',
 render: h => h(App)
})

以上代码便完成了 Mint UI 的引入。需要注意的是,样式文件需要单独引入。

2.按需引入

安装 babel-plugin-component:

npm install babel-plugin-component -D

将 .babelrc 修改为:

{
 "presets": [
  ["es2015", { "modules": false }]
 ],
 "plugins": [["component", [
  {
   "libraryName": "mint-ui",
   "style": true
  }
 ]]]
}

引入方式如下

import Vue from 'vue'
import { Button, Cell } from 'mint-ui'
import App from './App.vue'

Vue.component(Button.name, Button)
Vue.component(Cell.name, Cell)
/* 或写为
 * Vue.use(Button)
 * Vue.use(Cell)
 */

new Vue({
 el: '#app',
 render: h => h(App)
})

创建项目过程中有一下几个问题:

1.本地开发状态启动项目时,常会有代码空行、分号报错的问题。 原因:在创建项目时,选择了使用eslint语法校验。

2.引入样式报错问题,babel无法编译css文件。

Module not found: Error: Cannot resolve module 'mint-ui/style.css'

原因:全局引入需要引入样式,如果在.babelrc中设置过按需引入,则不要再专门引入css.

Vue使用vue-cli创建项目

3.另外引入的组件要在自定义组件中注册,组件中嵌套的组件也要进行引用和注册。

4.非渲染dom组件无需写在模板内,也无需注册,可以直接调用使用。比如load的Indicator

Vue使用vue-cli创建项目

三、vue-router的使用

github地址:https://github.com/vuejs/vue-router

在入口文件main.js中引入

import VueRouter from 'vue-router';
Vue.use(VueRouter);
//然后实例化一个router
const router = new VueRouter({
mode: 'history',
routes: routes
});

rotues是自己分配的路由设置;

四、使用vuex进行状态管理

vue的状态管理工具 vuex

下面简单介绍下vuex各个部分的概念

  • state是一个全局的状态存储,数据会存储在其中,vue组件可以直接访问其中的值,但是只可以读,不可以进行写操作
  • getter,有些时候我们需要对获取的数据进行加工,而不是直接获取state中的数据,这时候可以通过getter定义函数,返回对应的数据
  • mutations是vuex中唯一一个可以修改数据的地方,mutations可以定义事件函数,在vue组件中可以通过commit发射事件,调用函数。需要注意的是,mutations中的操作必须是同步的,不可以存在异步操作的情况。
  • actions和 mutation比较相似,不同的是actions中不直接修改state,而是通过commit调用mutations修改数据,而且actions中可以存在异步处理逻辑

使用vuex需要在Vue.use中引入,然后实例化一个Vuex.Store对象就可以了,对象中需要定义state,actions,mutations,getters等内容,这样子就可以建立一个全局的状态管理机制,可以从应用的顶端去处理数据,各个组件中对数据进行操作也是通过事件直接传递到Vuex中进行数据更新,然后再进行响应到其他使用同个数据的组件中,进行视图更新。

Vue使用vue-cli创建项目

Vue使用vue-cli创建项目

Vue使用vue-cli创建项目

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
JS取文本框中最小值的简单实例
Nov 29 Javascript
JavaScript中的console.log()函数详细介绍
Dec 29 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
Jul 24 Javascript
基于JS实现html中placeholder属性提示文字效果示例
Apr 19 Javascript
Vue实现PopupWindow组件详解
Apr 28 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
vue 自动化路由实现代码
Sep 03 Javascript
如何用threejs实现实时多边形折射
May 07 Javascript
vue 里面使用axios 和封装的示例代码
Sep 01 #Javascript
ionic2懒加载配置详解
Sep 01 #Javascript
javascript 中事件冒泡和事件捕获机制的详解
Sep 01 #Javascript
Vue的Class与Style绑定的方法
Sep 01 #Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 #Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 #Javascript
Angularjs实现上传图片预览功能
Sep 01 #Javascript
You might like
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
Python的gevent框架的入门教程
2015/04/29 Python
5种Python单例模式的实现方式
2016/01/14 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
Python多线程获取返回值代码实例
2020/02/17 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
农村婚礼证婚词
2014/01/08 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
小露珠教学反思
2014/04/30 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
2014和解协议书范文
2014/09/15 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
车辆委托书范本
2014/10/05 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
python 实现的截屏工具
2021/05/08 Python
Win11 BitLocker 驱动器加密
2022/04/19 数码科技