结合Vuex创造一个完美的vue-loading/vue-toast组件
2017-03-30 09:09
549 查看
先上demo
demo: https://deboyblog.github.io/vue-vuex-loading/github: https://github.com/deboyblog/vue-vuex-loading
解析(必要的叨叨)
一般的loading逻辑
通过一个
Boolean变量控制
loading的展示与关闭状态,
考虑到: 当进程是单个的, 这种方法确实是最简单的也最有效的
但是实际应用中, 很多情况都不是单进程的, 例如: 多个
http请求, 多个本地任务等场景, 所以这种方案, 应该被摒弃
当多个
http请求在同时执行的时候 一旦某个请求完成 那么这个控制显示的变量就变成了
false
这时候其实还有一个或者多个请求没有完成的,所以会导致loading加载结束,仍有部分数据是空白的,用户体验极差
通过队列(
list)的形式来记录
loading的实例
个人觉得, 更加合理的loading控制方案应该是以队列的形式来展现的,
所以结合
vuex(或者你可以直接
loading组件定义一个队列来存储当前的
loading列表)可以直观,
而且准确无误的控制
loading的打开和关闭
如果你需要更为精准的方案: 给每一个
loading绑定一个
uuid
demo 上没有用
uuid这种方法,因为只是演示其实是我懒
当然,要加上去并不难,具体需不需要就看你们自己项目需求了.
toast组件是同样的原理, 做一些细微的业务需求调整即可实现, 我就不多说了.
我想大部分人已经是第二种甚至是更完美的解决方案了, 此偏文章仅当作给新手之路和个人学习笔记之一
还有 demo 中
vuex的写法并非完全按照官方最佳实践来的. 因为只是个demo, 写得有点急也为了让新手看得没这么绕,
真正写组件别学我!!!
相关文章推荐
- 结合Vuex创造一个完美的vue-loading/vue-toast组件
- Vue 折腾记 - (4) 写一个不大靠谱的 loading 组件
- (五)vue开发 - 使用 vue-layer-mobile组件实现toast,loading效果
- vue---使用vue编写插件,基于vue2.x编写常用toast loading插件,一键复用组件
- 详解vue使用vue-layer-mobile组件实现toast,loading效果
- VUE开发一个图片轮播的组件示例代码
- 如何快速的写出一个Vue的icon组件?
- Vue.js一个文件对应一个组件实践
- 原创《开源一个用 vue 写的树层级组件 vue-ztree》
- Vue.js实现一个自定义分页组件vue-paginaiton
- vue写一个图片轮播的组件,在父组件中引用。用到mui。push。concat。vue
- VUE开发一个图片轮播的组件
- Vue.js学习 Item16 – 实现一个自定义分页组件vue-paginaiton
- vue学习系列-完成一个分页组件的封装
- vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
- Vue.js起步实践--不用webpack或vue全家桶情况下开始动手写一个小组件
- Vue.js实现一个漂亮、灵活、可复用的提示组件示例
- Vue指令实战:结合bootstrap做一个用户信息输入表格
- Android 弹出 Toast 时取消上一个 Toast(完美方案)增加同步
- vue-router 多个路由地址绑定一个组件造成 created 不执行的解决方法