Vue.js 有没有一种方法可以将Hypenova与Nuxt和VueJs一起使用并生成SSR?

Vue.js 有没有一种方法可以将Hypenova与Nuxt和VueJs一起使用并生成SSR?,vue.js,nuxt.js,hypernova,ara,Vue.js,Nuxt.js,Hypernova,Ara,我尝试用它来实现微前端。我选择了Nuxt框架作为我的主要应用程序,它“连接”了我的微型前端微前端使用VueJs框架实现 下面是我的一个微型前端(在VueJs中),它实现了一个非常简单的组件: ResumeFournisseur.vue: <template> <b-row> <b-col cols="3"> <div> LOGO

我尝试用它来实现微前端。我选择了Nuxt框架作为我的主要应用程序,它“连接”了我的微型前端微前端使用VueJs框架实现

下面是我的一个微型前端(在VueJs中),它实现了一个非常简单的组件:

ResumeFournisseur.vue:

<template>
    <b-row>
        <b-col cols="3">
            <div>
                LOGO
            </div>
            <div>
                <label>Choisissez votre fournisseur :</label>
                <select name="supplier" v-model="sellerSelectedValue">
                    <option v-for="fournisseur in fournisseurs"
                            :key="fournisseur.id"
                            v-bind:value="fournisseur.id">
                        {{ fournisseur.name }}
                    </option>
                </select>


                <button class="u-btn u-btn-primary">Voir les produits</button>

            </div>
        </b-col>
        <b-col cols="9">
            <h1>{{ sellerSelectedLabel }}</h1>
        </b-col>
    </b-row>
</template>

<script>
    export default  {
        name: 'ResumeFournisseur',
        props: {
            supplierId: String
        },
        data() {
            const fournisseurs = [
                {
                    id: -1,
                    name: 'Aucun fournisseur'
                },
                {
                    id: 1,
                    name: 'Renault'
                },
                {
                    id: 2,
                    name: 'Acial'
                }
            ];
            return {
                sellerSelectedValue: fournisseurs[0].id,
                fournisseurs : fournisseurs,
                sellerSelectedLabel: fournisseurs[0].name,
            }
        },
        mounted() {
            if (typeof this.supplierId != 'undefined'){
                this.sellerSelectedValue = this.supplierId;
            }
        },
        watch: {
            sellerSelectedValue: function () {
                const recup = this.fournisseurs.filter(four => four.id == this.sellerSelectedValue);
                this.sellerSelectedLabel = recup[0].name;
            }
        }
    }
</script>
然后在我的Nuxt应用程序中,我执行以下操作:

<template>
  <b-container fluid>
    <div>
        <nova name="ResumeFournisseur" :data="{}"/>
    </div>
  </b-container>
</template>

<script>
import Nova from "nova-vue-bridge";
import NovaClusterService from "../middleware/novaClusterService";

export default {
    components: {
        Nova
    },
    head () {
        return {
            title: 'Accueil',
            script: [
                { src:
                        'http://localhost:3001/public/client.js'
                }
            ]
        }
    }
}
</script>
这里是我的nova-proxy.json文件:

{
  "ResumeFournisseur": {
    "server": "http://localhost:3001/batch"
  }
}
{
  "locations": [
    {
      "path": "/",
      "host": "http://localhost:3000",
      "modifyResponse": true
    }
  ]
}
(请记住,Nuxt在3000端口上运行)。 我运行
ara运行cluster-config./views.json
(如文档所述)。然后我就跑

set HYPERNOVA_BATCH=htpp://localhost:8000/batch
ara run:proxy --config nova-proxy.json
因为我在Windows环境中,所以我做了一套。 当我在nova cluster上发帖子时,比如:

{
  "ResumeFournisseur": {
    "name": "ResumeFournisseur",
    "data": {
    }
  }
}
这是一个很好的回答。不错!!但是nova proxy没有做任何事情:(.文档说,如果它绑定到nova cluster(多亏了HYPERNOVA_批处理变量),它将能够渲染nova cluster渲染的视图

当然,如果我将集群响应嵌入到v-html指令中(在我的NuxtJs主应用程序中),那么微前端会被嵌入,但不会做任何事情(不是交互式的)

我遗漏了什么吗???我读了很多关于这个主题的文档,我对自己的选择/理解表示怀疑


如果有人能帮助我,那真是太好了:)

最后,我发现了我的误解。我得去http://localhost:8080 在我的浏览器上,它将调用nova代理,该代理称自己为nova集群。 事实上,您不能删除client.js的使用,因为正是因为这样,您才有了业务方面的优势

我找到了一个关于这个问题的答案

{
  "ResumeFournisseur": {
    "name": "ResumeFournisseur",
    "data": {
    }
  }
}