Vue.js 有没有一种方法可以将Hypenova与Nuxt和VueJs一起使用并生成SSR?
我尝试用它来实现微前端。我选择了Nuxt框架作为我的主要应用程序,它“连接”了我的微型前端微前端使用VueJs框架实现 下面是我的一个微型前端(在VueJs中),它实现了一个非常简单的组件: ResumeFournisseur.vue: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
<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": {
}
}
}