自定义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 相关文章推荐
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
一个javascript参数的小问题
Mar 02 Javascript
javascript的数组和常用函数详解
May 09 Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
详解ECharts使用心得总结
Dec 06 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
详解JS数值Number类型
Feb 07 Javascript
详解基于node.js的脚手架工具开发经历
Jan 28 Javascript
详解JavaScript作用域、作用域链和闭包的用法
Sep 03 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
深入理解PHP原理之异常机制
2010/08/21 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
js评分组件使用详解
2017/06/06 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python中的各种装饰器详解
2015/04/11 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
详解Python自建logging模块
2018/01/29 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
给numpy.array增加维度的超简单方法
2021/06/02 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python