自定义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 相关文章推荐
Query中click(),bind(),live(),delegate()的区别
Nov 19 Javascript
javascript查询字符串参数的方法
Jan 28 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
Feb 23 Javascript
JavaScript forEach()遍历函数使用及介绍
Jul 08 Javascript
AngularJS+Node.js实现在线聊天室
Aug 28 Javascript
jQuery简单实现列表隐藏和显示效果示例
Sep 12 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
layui中layer前端组件实现图片显示功能的方法分析
Oct 13 Javascript
Angular2开发环境搭建教程之VS Code
Dec 15 Javascript
JavaScript创建对象的常用方式总结
Aug 10 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
细说webpack6 Babel的使用详解
Sep 26 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
2011/04/18 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
Python多线程爬虫简单示例
2016/03/04 Python
Python实现扫码工具的示例代码
2020/10/09 Python
彻底解决Python包下载慢问题
2020/11/15 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
中职生自我鉴定范文
2013/10/03 职场文书
求职信内容考虑哪几点
2013/10/05 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
留守儿童工作方案
2014/06/02 职场文书
服务员岗位职责
2015/02/03 职场文书
部队2015年终工作总结
2015/04/02 职场文书