自定义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 相关文章推荐
jquery如何扑捉回车键触发的事件
Apr 24 Javascript
jquery通过visible来判断标签是否显示或隐藏
May 08 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
深入探寻seajs的模块化与加载方式
Apr 14 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
Oct 21 Javascript
javascript中的后退和刷新实现方法
Nov 10 Javascript
JS求解三元一次方程组值的方法
Jan 03 Javascript
ionic2懒加载配置详解
Sep 01 Javascript
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
详解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 如何利用phpexcel导入数据库
2013/08/24 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
详解node.js 事件循环
2020/07/22 Javascript
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
RC4文件加密的python实现方法
2015/06/30 Python
python difflib模块示例讲解
2017/09/13 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Python 忽略warning的输出方法
2018/10/18 Python
python判断完全平方数的方法
2018/11/13 Python
python3转换code128条形码的方法
2019/04/17 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
基于Python实现粒子滤波效果
2020/12/01 Python
python中使用np.delete()的实例方法
2021/02/01 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
大学生自我鉴定
2013/12/16 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技