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 相关文章推荐
jQuery使用手册之二 DOM操作
Mar 24 Javascript
jQuery each()方法的使用方法
Mar 18 Javascript
js字符编码函数区别分析
Dec 28 Javascript
javascript中的void运算符语法及使用介绍
Mar 10 Javascript
用JavaScript实现类似于ListBox功能示例代码
Mar 09 Javascript
javascript基本算法汇总
Mar 09 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
Oct 09 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
angular4+百分比进度显示插件用法示例
May 05 Javascript
jQuery实现评论模块
Aug 19 jQuery
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
php目录管理函数小结
2008/09/10 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
零基础写python爬虫之抓取百度贴吧代码分享
2014/11/06 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
擅自离岗检讨书
2014/02/11 职场文书
学校周年庆活动方案
2014/08/22 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
重阳节慰问信
2015/02/15 职场文书
好好学习保证书
2015/02/26 职场文书
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
MySQL数据库 任意ip连接方法
2022/05/20 MySQL