我有一个显示facebook用户登录按钮或用户名的组件.

现在在这个组件中,我使用

created

事件,所以我将立即判断登录.

FB.getLoginStatus(function(response) {
    //more things.....

错误在于它说FB没有定义,

我像这样加载facebook

<body>
<script>
  window.fbAsyncInit = function() {
  FB.init({
    appId      : '1111111111',
    xfbml      : true,
    version    : 'v2.7'
  });
};

(function(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>

推荐答案

我一直在寻找答案.

根据vbranden的 comments ,我能够让它为我工作.

你需要做的是在创建的方法中初始化facebook sdk.

以下是对我有用的东西:

<body>
<div id="test"></div>

<script>
new Vue({
  el: '#test',
  created: function() {
    console.log('created main');
    window.fbAsyncInit = function() {
      FB.init({
        appId      : '1111111111',
        xfbml      : true,
        version    : 'v2.7'
      });

      //This function should be here, inside window.fbAsyncInit
      FB.getLoginStatus(function(response) {
        console.log(response);
     });

   };

    (function(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>
</body>

Vue.js相关问答推荐

VUE:带自定义组件的数组输入绑定

是否可以使用 Vuetify/VueJS 为轮播设置默认图像而不是第一个图像?

Vue子组件等待props

vuetifyjs:仅添加使用过的图标来构建

W3C 验证和 Vue 的 HTML 绑定语法

如何使用 vuejs 从 SPA 访问 /storage -laravel- 中的图像

vue-router的router-link实际刷新?

如何将 vuetify 2.0 beta 安装到新的 vue cli 项目中?

正确的 vueJS 方法将props与数据同步

如何在 Vue3 设置标签中定义组件名称?

'vue' 未被识别为内部或外部命令

如何从 vue 组件调用 App.vue 中的方法

Bootstrap-vue:如何将数据传递给模态?

Vuetify RTL 风格

在 VueJS 中使用 Axios - 这个未定义

NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止

检测 Vue-Router 导航Guards中的后退按钮

如何在 vuejs 中的基于类的组件中编写计算设置器

v-bind:class 的 Vue.js 计算(computed)属性

Mapbox 事件监听器