如何知道何时将所有子组件加载到vue.js中

阿比塞克

我有一个vue.js应用程序,其中有几个子组件,如下所示:

<main-app>
   <child-component></child-component>
   <child-component></child-component>
   <child-component></child-component>
...
</main>

加载页面后,我可以使用ready钩子来知道组件已完成加载。现在,这些组件使用ajax数据填充,并且可以通过单击按钮进行手动更新。我可以使用broadcastdispatch方法从每个子组件中获取数据但是我想在用户单击按钮时向用户显示一个预加载器,并在所有ajax请求完成时将其隐藏。为此,我需要知道所有子组件都已完成加载。最近4-5个小时我不能做。Google和SO并没有太大帮助。

我也尝试过使用jQuery,ajaxStop但似乎不适用于vue-resource。谁能帮帮我吗?

丹尼尔·巴雷托(Ever Daniel Barreto)

我需要做一次类似的事情,最终要做的事情(除了在完成vue渲染后使用v-cloak来显示应用程序)还跟踪每个需求变量是否data已经有数据(只有),然后才“显示”应用程序(为此,我使用了一个内部标志来控制是显示应用程序还是显示加载消息)。

与此类似(使用underscore.js):

var app = new Vue({
    el: 'body',
    data: {
        data1: [],
        data2: [],
        data3: []
    },
    ready: function() {
        this.showApp();

        // Data 1
        $.getJSON('/path-to/data1', function(data) {
            app.$set('data1', data);
            app.showApp();
        });

        // Data 2
        $.getJSON('/path-to/data2', function(data) {
            app.$set('data2', data);
            app.showApp();
        });

        // Data 3
        $.getJSON('/path-to/data3', function(data) {
            app.$set('data3', data);
            app.showApp();
        });
    },
    methods: {
        showApp: function() {
            // Check if all data was loaded
            var requiredData = _.every(['data1', 'data2', 'data3'], function(el) {
                return _.size(this[el]) > 0;
            }, this);

            // If it was, enable the app
            if (requiredData) {
                $(this.$els.loading).hide();
                $(this.$els.app).fadeIn();
            }
        }
    }
});

由于使用的是组件,因此必须使用事件showApp在主应用程序上触发该方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将所有项目加载到foreach中后,Knockout.js组件进行回调

来自分类Dev

我们如何知道何时将图像完全加载到ImageSurface中

来自分类Dev

使用 jQuery,如何检查所有图像何时已加载到动态 dom 结构中?

来自分类Dev

Query Parse.com之后如何将所有对象加载到数组中

来自分类Dev

如何将所有标记文件加载到目录中?

来自分类Dev

如何将R数据框中的所有变量加载到工作空间?

来自分类Dev

将所有部分加载到目录中

来自分类Dev

将所有lua文件加载到目录中

来自分类Dev

根据URL路由将子组件加载到其他组件中

来自分类Dev

如何使数据加载到所有元素中?

来自分类Dev

如何将所有 Vue.js 路由、模板和组件合并到一个文件中?

来自分类Dev

如何在一个请求中将所有节点(及其子节点)加载到TreePanel中?

来自分类Dev

将外部CSS加载到组件中

来自分类Dev

无法将js加载到MongoDB中

来自分类Dev

ReactJS:如何访问父组件中的所有子组件?

来自分类Dev

将所有 JAR 中的所有类加载到类路径

来自分类Dev

将自定义脚本加载到Vue.js组件中

来自分类Dev

如何将Buefy吐司用于Vue应用程序中的所有组件?

来自分类Dev

代码拆分将所有块文件加载到chrome上,但分别将它们加载到firefox中

来自分类Dev

如何知道何时使用基本JS Promise拒绝或解决了所有Promise

来自分类Dev

Node.js 如何知道所有异步功能何时完成?

来自分类Dev

将组件加载到组件中时出现 JavaFX NullPointerException

来自分类Dev

如何将数据“加载”到Vue组件中?

来自分类Dev

我如何知道我的代码何时在Dart中完成区域中的所有异步工作?

来自分类Dev

我如何知道ExecutorService中的所有线程何时完成?

来自分类Dev

如何使用Meteor / handlebars.js将js加载到模板中?

来自分类Dev

libGDX将所有图像从目录中循环加载到AssetManager中,需要很长时间

来自分类Dev

如何将简单的 React NPM 组件加载到应用程序中

来自分类Dev

将文章加载到Joomla中的组件模板中

Related 相关文章

  1. 1

    将所有项目加载到foreach中后,Knockout.js组件进行回调

  2. 2

    我们如何知道何时将图像完全加载到ImageSurface中

  3. 3

    使用 jQuery,如何检查所有图像何时已加载到动态 dom 结构中?

  4. 4

    Query Parse.com之后如何将所有对象加载到数组中

  5. 5

    如何将所有标记文件加载到目录中?

  6. 6

    如何将R数据框中的所有变量加载到工作空间?

  7. 7

    将所有部分加载到目录中

  8. 8

    将所有lua文件加载到目录中

  9. 9

    根据URL路由将子组件加载到其他组件中

  10. 10

    如何使数据加载到所有元素中?

  11. 11

    如何将所有 Vue.js 路由、模板和组件合并到一个文件中?

  12. 12

    如何在一个请求中将所有节点(及其子节点)加载到TreePanel中?

  13. 13

    将外部CSS加载到组件中

  14. 14

    无法将js加载到MongoDB中

  15. 15

    ReactJS:如何访问父组件中的所有子组件?

  16. 16

    将所有 JAR 中的所有类加载到类路径

  17. 17

    将自定义脚本加载到Vue.js组件中

  18. 18

    如何将Buefy吐司用于Vue应用程序中的所有组件?

  19. 19

    代码拆分将所有块文件加载到chrome上,但分别将它们加载到firefox中

  20. 20

    如何知道何时使用基本JS Promise拒绝或解决了所有Promise

  21. 21

    Node.js 如何知道所有异步功能何时完成?

  22. 22

    将组件加载到组件中时出现 JavaFX NullPointerException

  23. 23

    如何将数据“加载”到Vue组件中?

  24. 24

    我如何知道我的代码何时在Dart中完成区域中的所有异步工作?

  25. 25

    我如何知道ExecutorService中的所有线程何时完成?

  26. 26

    如何使用Meteor / handlebars.js将js加载到模板中?

  27. 27

    libGDX将所有图像从目录中循环加载到AssetManager中,需要很长时间

  28. 28

    如何将简单的 React NPM 组件加载到应用程序中

  29. 29

    将文章加载到Joomla中的组件模板中

热门标签

归档