自定义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 相关文章推荐
js left,right,mid函数
Jun 10 Javascript
js中生成map对象的方法
Jan 09 Javascript
如何编写高质量JS代码
Dec 28 Javascript
理解javascript中的严格模式
Feb 01 Javascript
jquery遍历json对象集合详解
May 18 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
对Angular.js Controller如何进行单元测试
Oct 25 Javascript
详解前后端分离之VueJS前端
May 24 Javascript
彻底解决 webpack 打包文件体积过大问题
Jul 07 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
Dec 24 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
JS+css3实现幻灯片轮播图
Aug 14 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
PHP SOCKET编程详解
2015/05/22 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
Python守护进程用法实例分析
2015/06/04 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
python实现按首字母分类查找功能
2019/10/31 Python
python_mask_array的用法
2020/02/18 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
学校采购员岗位职责
2014/01/02 职场文书
表彰先进集体通报
2014/01/12 职场文书
仓管岗位职责范本
2014/02/08 职场文书
八年级语文教学反思
2014/02/11 职场文书
心得体会的写法
2014/09/05 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
师德师风学习材料
2014/12/19 职场文书
外国人来华邀请函
2015/01/31 职场文书
使用python绘制横竖条形图
2022/04/21 Python