单页应用,渲染的组件类型如何由接口控制?

发布于 2022-09-05 15:47:16 字数 631 浏览 24 评论 0

现在有一个首页,有三个组件A,B,C都可以被渲染在页面中

import A from 'A';
import B from 'B';
import C from 'C';

具体如何渲染需要调用接口才知道
例如接口返回[a,a,b]页面渲染

render() {
        return (
            <div>
                <A />
                <A />
                <B />
            </div>
        );
    }
    

接口返回[a,c,b]页面渲染

render() {
        return (
            <div>
                <A />
                <C />
                <B />
            </div>
        );
    }

这要怎么控制?< />也没法传参呀????

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

聆听风音 2022-09-12 15:47:16
var apiData = ... //从服务端获取的数据,就不处理了
render() {
        let compoentList = {A:<A />;B:<B />;C:<C />}
        return (
            <div>
                {apiData.map((item)=> compoentList[item])}
            </div>
        );
    }
心碎无痕… 2022-09-12 15:47:16

https://cn.vuejs.org/v2/guide...动态组件

用动态组件喽, 根据后端返回的值来判断应该加载的组件的名字, 然后进行异步加载组件

clipboard.png

图中的activeComponent的值就是后端返回数据后你判断得出的组件名, 我这是个例子并没有写和后端交互的部分, 按实际情况写个流程判断就ok


如何传数据?

父组件:
clipboard.png

子组件定义个props

clipboard.png


继续补充一个, 就是这个父组件也可以用函数化组件, 性能更优

函数化组件

摇划花蜜的午后 2022-09-12 15:47:16

可以添加判断逻辑啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文