是否可以从外部来源获取HTML / JSX内容并在React中动态呈现它?在我们的例子中,我们想从Wordpress API中获取内容,并在客户端和服务器上都进行渲染(我们正在使用NextJS)
因此,Wordpress API返回一个JSON响应,其中包含一个content属性,该属性是一串HTML / JSX。内容看起来像这样。
{
content: "<div><Slider imageCount="5" galleryID="1"></Slider><span>This is an image gallery</span></div>"
}
因此,如您所见,它将是HTML和React组件/ JSX的混合体,以字符串形式表示
我将使用Axios进行调用以获取内容(使用NextJS的getInitialProps()方法在服务器和客户端上),然后我需要呈现它,但是我是新手,所以我可以看到几个问题。
1)在React中,JSX是在构建时而不是运行时编译的,我看不出如何解决这个问题(例如,在Angular中使用$ compile服务会很容易)。
2)由于我们不知道Wordpress的内容将使用哪些组件,因此我们必须在页面顶部导入其中的每个组件,其中的内容可能包括组件,也可能包括组件,谁知道?。
现在,我认为这是不可能的,这意味着我们不得不重新考虑使用React,但是我真的希望有人能够回答。
任何帮助将不胜感激。
您可以参考以下链接
https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml
对于React Components部分,您可以使用渲染静态HTML标记字符串
https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup
But be sure that the html you get is from an authentic source and will not contain any malicious scripts