【发布时间】:2019-03-29 14:08:07
【问题描述】:
我有一个网站设计,其中包含没有任何框架的 javascript。现在我正处于开发过程中,我需要使用 javascript 框架,例如对特定过程做出反应。那么,它会起作用还是我需要将所有东西都转换成一个框架?我正在使用 Laravel,如何在 Laravel 框架内为单个网站制作多个 React 应用程序?
【问题讨论】:
标签: javascript reactjs laravel
我有一个网站设计,其中包含没有任何框架的 javascript。现在我正处于开发过程中,我需要使用 javascript 框架,例如对特定过程做出反应。那么,它会起作用还是我需要将所有东西都转换成一个框架?我正在使用 Laravel,如何在 Laravel 框架内为单个网站制作多个 React 应用程序?
【问题讨论】:
标签: javascript reactjs laravel
是的。这正是 Facebook 通过创建 React 旨在解决的问题。他们最初只将 React 用于部分评论系统和聊天。
您可以创建一个 React 组件并仅在您网站的一部分中使用它。您只需要为它提供一个安装位置。也就是说,您要在其中安装应用程序的 div。
查看documentation for React DOM 和integration guide 了解有关渲染到DOM 的更多信息。基本思想是创建您的组件,然后使用以下代码呈现它:
ReactDOM.render(element, container[, callback])
【讨论】:
来自 React 文档:
React 可以在任何 Web 应用程序中使用。它可以嵌入到其他应用程序中,并且稍加注意,其他应用程序也可以嵌入到 React 中。
要将 React 与其他库或框架集成,请查看 React 集成指南:https://reactjs.org/docs/integrating-with-other-libraries.html
【讨论】:
是的,您可以从 react 库创建全局窗口渲染器函数,并从 vanilla js 或其他第三方库(如 jquery)调用它。您只需要包含缩小的 js 即可调用该函数。
一些类似下面的反应
const app = (parameter1,parameter2) => (
<YourComponent parameter1={parameter1} parameter2={parameter2}/>
);
window.renderYourComponent = function (p1, p2) {
render(app(p1,p2), document.getElementById('your_div'));
}
在你的原版 js 上
<script type="text/javascript" src="your_minified_react.js"></script>
<div id='your_div'></div>
window.renderYourComponent("p1","p2");
所有内容都将在 'your_div' 中呈现,您可以单独处理 react
【讨论】:
是的,您可以在 Laravel 框架内为单个网站制作多个 React 应用程序。 Laravel 的前端 UI 经常使用刀片模板。 您需要做的是构建 React 应用程序并将构建的 React 应用程序与 Laravel 刀片集成。 例如,您可以将 React 应用程序的整个构建内容复制到 Laravel 主页刀片中。 另外,在 React 内部导入自定义的 Javascript 文件,你可以使用脚本标签和 webpack 复制模块等多种方式。
【讨论】: