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 相关文章推荐
关于 byval 与 byref 的区别分析总结
Oct 08 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 Javascript
JS深度拷贝Object Array实例分析
Mar 31 Javascript
js获取元素的标签名实现方法
Oct 08 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 Javascript
浅谈PDF.js使用心得
Jun 07 Javascript
vue侧边栏动态生成下级菜单的方法
Sep 07 Javascript
vue-router的使用方法及含参数的配置方法
Nov 13 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
vue.js实现简单购物车功能
May 30 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
为PHP初学者的8点有效建议
2010/11/20 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python中turtle作图示例
2017/11/15 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
C#面试题
2016/05/06 面试题
党支部书记岗位责任制
2014/02/11 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
教务处干事工作总结
2015/08/14 职场文书
SQL中的三种去重方法小结
2021/11/01 SQL Server
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电