How to wait for the Facebook SDK to load in a Vue.js component?

Sometimes, we want to wait for the Facebook SDK to load in a Vue.js component.

In this article, we’ll look at how to wait for the Facebook SDK to load in a Vue.js component.

How to wait for the Facebook SDK to load in a Vue.js component?

To wait for the Facebook SDK to load in a Vue.js component, we can put the Facebook SDK initialization code in the created hook.

For instance, we write

<template>
  <div id="app">
    <div v-html="innerHtml"></div>
  </div>
</template>

<script>
//...
export default {
  //...
  created() {
    window.fbAsyncInit = () => {
      FB.init({
        appId: "1111111111",
        xfbml: true,
        version: "v2.7",
      });
      FB.getLoginStatus((response) => {
        console.log(response);
      });
    };

    ((d, s, id) => {
      var js,
        fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {
        return;
      }
      js = d.createElement(s);
      js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js";
      fjs.parentNode.insertBefore(js, fjs);
    })(document, "script", "facebook-jssdk");
  },
  //...
};
</script>

to add the Facebook SDK initalization code into the created hook.

And then we get the response from the getLoginStatus callback when the Facebook SDK is loaded.

Conclusion

To wait for the Facebook SDK to load in a Vue.js component, we can put the Facebook SDK initialization code in the created hook.