自定义vue全局组件use使用、vuex的使用详解


Posted in Javascript onJune 14, 2017

自定义vue全局组件use使用(解释vue.use()的原理)

我们在前面学习到是用别人的组件:Vue.use(VueRouter)、Vue.use(Mint)等等。

其实使用的这些都是全局组件,这里我们就来讲解一下怎么样定义一个全局组件,并解释vue.use()的原理

而我们再用Axios做交互,则不能使用Vue.use(Axios),因为Axios没有install自定义一个全局Loading组件,并使用:

总结目录:

|-components

|-loading

|-index.js 导出组件,并且install

|-loading.vue 定义Loading组件,这里面基本的style ,script中之前讲的methods,data方法都可以使用

index.js中的代码:

import LoadingComponent from './loading.vue'
const Loading={


install:function(Vue){ //核心部分,在我们使用Vue.use()时,自动调用的是install,而install导出的必须是的组件
 

Vue.component('loading',LoadingComponent);

}
 };
export default Loading;

 main.js中要使用:

import loading from './components/loading'

Vue.use(loading); //调用的是install里面的组件

 vuex的使用:

 官方文档:http://vuex.vuejs.org

vuex:主要用来集中式管理组件状态,(如组件显示/隐藏,增加/减少)

1)启动一个项目

2)安装vuex:cnpm install vuex -D

 3)vuex提供了两个非常好的方法:

  1. mapActions():可以将所有methods里面的方法,进行打包。即对所有的事件(或我们的行为)进行管理
  2. mapGetters:获取所有的数据,对所有的数据进行管理

4)vuex的工作过程:

1.当用户点击时,会调用increment函数(即用户有一个动作dispatch)mapActions将函数(动作dispatch)提交到actions里面,并且传了commit这个参数(也是一个函数)

2.commit主要处理你要做什么,比如异步请求,判断,流程控制等,commit会将这些请求、状态提交到mutations里面

3.mutations主要用来处理状态(数据)的变化

4.mapGetters获取目前数据,将状态(数据)提交到getters上面,给mutations使用,让数据发生变化,并返回(render),从而更新视图

5)actions里面除了含有commit这的对象参数以外,还有另一个参数state(Vue组件中展示的数据源)。在这个过程中可以对数据进行判断,并作出相应的操作。

例子在src1/store.js中,这里是没有改写之前的代码

官方的文档中指出,vuex工作的各个过程是拆分开来实现的,下面我们就来进行一些分文件实现

项目的目录:

|--src文件夹
 

|--App.vue

|--main.js

|--store文件夹
 

|--index.js //必须有index.js,它是我们组装模块并导出 store 的地方
 

|--actions.js //是我们有动作触发之后,dispatch提交的地方
 

|--mutations.js //commit提交的地方
 

|--types.js //存放的是控制数据状态的地方,即控制数据如何变化
 

|--getters.js //获取数据的目前状态,给mutations使用

项目链接:https://github.com/yufann/vue.use-and-vuex

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

Javascript 相关文章推荐
基于jquery tab切换(防止页面刷新)
May 23 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
Aug 14 Javascript
javascript对JSON数据排序的3个例子
Apr 12 Javascript
jQuery实现数字加减效果汇总
Dec 16 Javascript
javascript发送短信验证码实现代码
Nov 12 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
Bootstrap实现下拉菜单效果
Apr 29 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
Mar 10 Javascript
原生js实现简单的模态框示例
Sep 08 Javascript
vue中的自定义分页插件组件的示例
Aug 18 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
详解AngularJS 模块化
Jun 14 #Javascript
JS判断时间段的实现代码
Jun 14 #Javascript
bootstrap选项卡扩展功能详解
Jun 14 #Javascript
zTree树形插件异步加载方法详解
Jun 14 #Javascript
详解Angular2响应式表单
Jun 14 #Javascript
vue过渡和animate.css结合使用详解
Jun 14 #Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
Jun 14 #Javascript
You might like
ini_set的用法介绍
2014/01/07 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
JAVASCRIPT HashTable
2007/01/22 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python使用Tesseract库识别验证
2018/03/21 Python
django允许外部访问的实例讲解
2018/05/14 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
个人求职简历的自我评价
2013/10/19 职场文书
企业统计员岗位职责
2013/12/13 职场文书
运动会表扬稿大全
2014/01/16 职场文书
联谊活动总结
2014/08/28 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫