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 相关文章推荐
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
jQuery中:first-child选择器用法实例
Dec 31 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
Jan 08 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
JS+HTML实现的圆形可点击区域示例【3种方法】
Aug 01 Javascript
详解vue如何使用rules对表单字段进行校验
Oct 17 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
牡丹941资料
2021/03/01 无线电
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
详解Vue方法与事件
2017/03/09 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
python重试装饰器示例
2014/02/11 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
python创建学生管理系统
2019/11/22 Python
没编程基础可以学python吗
2020/06/17 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
解除劳动合同协议书(样本)
2014/10/02 职场文书
2014年优秀党员材料
2014/12/18 职场文书
评先进个人材料
2014/12/29 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
体育教师研修感悟
2015/11/18 职场文书
《绝招》教学反思
2016/02/20 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS