栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将现有React应用(只是一个没有后端的UI)插入(注入?)到SilverStripe页面布局中?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将现有React应用(只是一个没有后端的UI)插入(注入?)到SilverStripe页面布局中?

您可以使用

Requirements::javascript()
控制器中的调用或使用
<% require%>
调用从模板中注入前端应用程序捆绑包。基本概念是“将Javascript(和/或CSS)捆绑添加到我的前端视图”。鉴于捆绑包在页面上可用,因此从那里开始捆绑包可以自行启动。


这是添加到主题的轻量示例:

  • 添加一个主题文件夹,例如
    themes/my-theme
  • 通过将其添加到启用它
    app/_config/theme.yml
  • 添加一个ReactPage 布局 (注意:该布局是内容部分,而不是整个页面布局)

    File: ./themes/my-theme/templates/Layout/ReactPage.ss


    If you can see this, your React app hasn’t initialised yet

  • 刷新(

    ?flush
    在浏览器中)缓存

如果您在CMS中添加一个ReactPage,然后在前端打开它,您现在应该看到消息,您的React应用尚未初始化。之所以可行,是因为SilverStripe会查找页面的继承链,以查找具有与其类名匹配的模板的页面。请注意,这包括该类的名称空间,因此,如果您的类具有一个名称空间,则

templates/Foo/Bar/Layout/ReactPage.ss
例如需要使用该名称空间。

现在初始化一个演示React应用程序:

  • cd themes/my-theme && create-react-app js
  • cd js && yarn build

现在,您需要告诉SilverStripe
将主题资产“公开”,这将把它们默认链接到

public/resources
目录中,以便您可以从webroot(
public/
文件夹)访问它们。

# File: ./composer.json..."extra": {    "expose": [        "themes/my-theme/build/static/js/bundle.js"    ]}

composer vendor-expose
从您的根项目文件夹运行以重新公开所有资源。

最后,将需求添加到SilverStripe模板或控制器。您可以通过控制器的

init()
方法或直接在模板中执行此操作:

# File: ReactPageController.php (note that this may not exist and doesn't need to necessarily)use SilverStripeViewRequirements;// ...protected function init(){    parent::init();    Requirements::javascript('themes/my-theme/js/build/static/js/main.ad956de7.chunk.js');    Requirements::javascript('themes/my-theme/js/build/static/js/2.6efc73d3.chunk.js');    Requirements::javascript('themes/my-theme/js/build/static/js/runtime~main.a8a9905a.js');    Requirements::css('themes/my-theme/js/build/static/css/main.5c68d653.chunk.css');}

出于本示例的目的,我使用了由创建的文件的哈希名称

create-react-app
。如果您使用一致的文件名(例如
bundle.js
或类似名称),则将其集成到SilverStripe中会更容易。

您也可以在模板中执行以下操作:

# File: ./themes/my-theme/templates/Layout/ReactPage.ss...<% require javascript('themes/my-theme/js/build/static/js/main.ad956de7.chunk.js') %><% require javascript('themes/my-theme/js/build/static/js/2.6efc73d3.chunk.js') %><% require javascript('themes/my-theme/js/build/static/js/runtime~main.a8a9905a.js') %><% require css('themes/my-theme/js/build/static/css/main.5c68d653.chunk.css') %>

现在加载您的浏览器,您将看到React应用程序正在运行。有点破,但就本示例而言,它足以说明如何在页面上运行React应用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616496.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号