自定义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 相关文章推荐
javascript Math.random()随机数函数
Nov 04 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
JavaScript在XHTML中的用法详解
Apr 11 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
May 08 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
Jan 26 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
javascript使用Promise对象实现异步编程
Mar 01 Javascript
jquery实现页面常用的返回顶部效果
Mar 04 Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 Javascript
jQuery图片瀑布流的简单实现代码
Mar 15 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 Javascript
基于JavaScript获取url参数2种方法
Apr 17 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
php HandlerSocket的使用
2011/05/02 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php Session存储到Redis的方法
2013/11/04 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
详解jQuery中ajax.load()方法
2017/01/25 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
Python输出9*9乘法表的方法
2015/05/25 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
化学相关工作求职信
2013/10/02 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
先进工作者申报材料
2014/12/23 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
大学生入党群众意见书
2015/06/02 职场文书
男生贾里读书笔记
2015/06/30 职场文书
学子宴致辞大全
2015/07/27 职场文书