自定义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 相关文章推荐
ext 列表页面关于多行查询的办法
Mar 25 Javascript
Javascript下判断是否为闰年的Datetime包
Oct 26 Javascript
js倒计时小程序
Nov 05 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 Javascript
Javascript基础教程之argument 详解
Jan 18 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
Jquery promise实现一张一张加载图片
Nov 13 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 Javascript
Vue Components 数字键盘的实现
Sep 18 Javascript
js实现无缝轮播图效果
Mar 09 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
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
javascript实现yield的方法
2013/11/06 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
用python写asp详细讲解
2013/12/16 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
详解如何修改python中字典的键和值
2020/09/29 Python
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
学生检讨书范文
2014/10/30 职场文书
营销经理工作检讨书
2014/11/03 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
党性修养心得体会2016
2016/01/21 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python