自定义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 json 新手入门文档
Dec 03 Javascript
JS中处理与当前时间间隔的函数代码
May 23 Javascript
jquery怎样实现ajax联动框(一)
Mar 08 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
Sep 16 Javascript
Angular 4 指令快速入门教程
Jun 07 Javascript
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
详解VUE单页应用骨架屏方案
Jan 17 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
封装 axios+promise通用请求函数操作
Aug 11 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
Oct 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
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
Java中final关键字详解
2015/08/10 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
浅谈Python 中整型对象的存储问题
2016/05/16 Python
python简单实现获取当前时间
2016/08/27 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
Python 中如何写注释
2020/08/28 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
传播学专业毕业生自荐信
2013/11/04 职场文书
英语专业毕业生自我鉴定
2013/11/09 职场文书
机械电子工程专业推荐信范文
2013/11/20 职场文书
高级电工工作职责
2013/11/21 职场文书
财务方面个人工作的自我评价
2013/12/28 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
暑期培训随笔感言
2014/03/10 职场文书
项目建议书怎么写
2014/05/15 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库