一个页面如何成为多个页面的子页面

系统a,b,c都需要一个页面x。
但是在不同的系统打开页面x时,需要依然显示homea或b或c
但是本人又不想写三个页面x分别放在home a/b/c的children下面,请问应该如何解决呢?

额。。这个需求,在服务器端很容易实现,include 或者 exec cgi 之类的都可以实现,并且数据传递什么的也方便

仅在客户端实现的话,iframe 或者 frameset 了解下,这样的话,top 的 location 还是当前路径

再不行,你可以用异步请求,加载一个模板页,然后,到当前页面渲染

可以把页面x设计成一个组件,供各个系统调用。node.js、vue.js的特性之一就是组件化,提高代码复用。

以下内容部分参考ChatGPT模型:


可以使用 Vue.js 的动态组件来解决这个问题。具体做法是在 homea/b/c 中使用一个动态组件,通过 props 传递需要展示的页面 x 的组件名给这个动态组件,在动态组件中根据传入的组件名动态渲染对应的子组件 x。

示例代码如下:

在 homea/b/c 的模板中添加动态组件:

<template>
  <div>
    <h1>{{ title }}</h1>
    <<component :is="childComponent"></component>
  </div>
</template>

在 homea/b/c 的脚本中定义 props 和 data:

export default {
  props: {
    childComponent: {
      type: String,
      required: true
    }
  },
  data() {
    return {
      title: 'Home A/B/C'
    }
  }
}

在父组件中通过 props 把组件名传递给子组件:

<template>
  <div>
    <homea :child-component="'page-x'"></homea>
    <homeb :child-component="'page-x'"></homeb>
    <homec :child-component="'page-x'"></homec>
  </div>
</template>

在父组件的脚本中注册子组件 x 和父组件 homea/b/c:

import PageX from './PageX.vue'
import HomeA from './HomeA.vue'
import HomeB from './HomeB.vue'
import HomeC from './HomeC.vue'

export default {
  components: {
    PageX,
    HomeA,
    HomeB,
    HomeC
  }
}

这样就可以在不同的系统中共用同一个页面 x,并且在不同的系统中展示不同的父组件。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快

那个页面 可以 单独写个 页面 然后部署到服务 端 ,其他项目就可以 用 地址访问到了