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 打印内容方法小结
Nov 04 Javascript
jquery 查找select ,并触发事件的实现代码
Mar 30 Javascript
script的async属性以非阻塞的模式加载脚本
Jan 15 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
Sep 04 Javascript
puppeteer实现html截图的示例代码
Jan 10 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
js实现div色块拖动录制
Jan 16 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
在PHP的图形函数中显示汉字
2006/10/09 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
Python字典对象实现原理详解
2019/07/01 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
nginx请求限制配置方法
2021/07/09 Servers
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python