0

0

将 React 与其他广泛使用的 Web 语言连接起来

王林

王林

发布时间:2023-09-03 13:57:08

|

878人浏览过

|

来源于php中文网

原创

将 react 与其他广泛使用的 web 语言连接起来

React 是一个用 JavaScript 编写的视图库,因此它与任何堆栈配置无关,并且几乎可以出现在任何使用 HTML 和 JavaScript 作为表示层的 Web 应用程序中。

由于 React 就像“MVC”中的“V”一样,我们可以根据自己的喜好创建自己的应用程序堆栈。到目前为止,在本指南中我们已经看到 React 与 Express(一个基于 Node ES6/JavaScript 的框架)的配合。 React 的其他流行的基于节点的匹配是 Meteor 框架和 Facebook 的 Relay。

如果您想在现有项目中利用 React 出色的基于组件的 JSX 系统、虚拟 DOM 及其超快的渲染时间,您可以通过实施众多开源解决方案之一来实现。 p>

PHP

由于 PHP 是一种服务器端脚本语言,与 React 的集成可以有多种形式:

  • 使用react-php-v8js
  • 服务器端请求/响应路由处理(使用路由器,例如 Alto)
  • 通过 json_encode() 输出 JSON
  • 模板包装,例如枝条

服务器端渲染

为了在服务器上渲染 React 组件,GitHub 上有一个可用的库。

例如,我们可以使用此包在 PHP 中执行以下操作:

setComponent('MyComponent', array(
  'any'   =>  1,
  'props' =>  2
  )
);

// print rendered markup
echo '' . $rjs->getMarkup() . '';

// load JavaScript somehow - concatenated, from CDN, etc
// including react.js and custom/components.js

// init client
echo '' . $rjs->getJS("#here") . ''; 

// repeat setComponent(), getMarkup(), getJS() as necessary
// to render more components

将 React 与任何服务器端脚本语言相结合的强大之处在于能够向 React 提供数据,并在服务器和客户端上应用业务逻辑。将旧应用程序改造为响应式应用程序从未如此简单!

使用 PHP + Alto 路由器

有关示例应用程序,请查看 GitHub 上的此存储库。

按如下方式配置您的 AltoRouter

map('GET', '/', $viewPath . 'reactjs.html', 'reactjs');

$result = $viewPath . '404.php';

$match = $router->match();
if($match) {
	$result = $match['target'];
}

// Return route match 
include $result;

?>

通过 AltoRouter 设置为指定的路由提供应用程序页面服务,您只需将 React 代码包含在 HTML 标记中即可开始使用您的组件。 p>

JavaScript:

"use strict";

var Comment = React.createClass({
  displayName: "Comment",

  render: function render() {
    var rawMarkup = marked(this.props.children.toString(), { sanitize: true });
    return React.createElement(
      "div",
      { className: "comment" },
      React.createElement(
        "h2",
        { className: "commentAuthor" },
        this.props.author
      ),
      React.createElement("span", { dangerouslySetInnerHTML: { __html: rawMarkup } })
    );
  }
});

确保包含 React 库,并将 HTML 放入将由 PHP AltoRouter 应用程序提供的 body 标记内,例如:



  
    React Example
    
    
    
    
  
  
    
    
  

Laravel 用户

对于非常流行的 PHP 框架 Laravel,有 react-laravel 库,它可以在 Blade 视图中启用 React.js。

例如:

@react_component('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ])

prerender 标志告诉 Laravel 在服务器端渲染组件,然后将其挂载到客户端。

Laravel 5.2 + React 应用示例

查看这个优秀的入门存储库,了解 Spharian 运行 Laravel + React 的示例。

要在 Laravel 中渲染 React 代码,请在 index.blade.php body 标记中设置 React 文件的源代码,例如添加以下内容:


.NET

使用ReactJS.NET框架,您可以轻松地将React引入您的.NET应用程序中。

通过 .NET 的 NuGET 包管理器将 ReactJS.NET 包安装到 Visual Studio IDE。

搜索“ReactJS.NET(MVC 4 和 5)”的可用软件包并安装。您现在可以在 ASP.NET 应用程序中使用任何 .jsx 扩展代码。

向您的项目添加一个新控制器以开始使用 React + .NET,并为您的模板选择“空 MVC 控制器”。创建后,右键单击 return View() 并添加一个包含以下详细信息的新视图:

  • 视图名称:索引
  • 查看引擎:Razor (CSHTML)
  • 创建强类型视图:未勾选
  • 创建为部分视图:未勾选
  • 使用布局或母版页:未选中

现在您可以将默认代码替换为以下内容:

@{
    Layout = null;
}


    Hello React


    
    
    
    


现在我们需要创建上面引用的 Example.jsx,因此在您的项目中创建该文件并添加您的 JSX,如下所示:

var CommentBox = React.createClass({
  render: function() {
    return (
      
        Hello, world! I am a CommentBox.
      
    );
  }
});
ReactDOM.render(
  ,
  document.getElementById('content')
);

现在,如果您在 Visual Studio IDE 中单击 Play,您应该会看到 Hello World 注释框示例。

这是有关为 ASP.NET 编写组件的详细教程。

轨道

通过使用 react-rails,您可以轻松地将 React 添加到任何 Rails (3.2+) 应用程序。首先,只需添加 gem:

gem 'react-rails', '~> 1.7.0'

并安装:

扣子编程
扣子编程

扣子推出的AI编程开发工具

下载
bundle install

现在您可以运行安装脚本:

rails g react:install

这将导致两件事:

  • components.js 清单文件位于 app/assets/javascripts/components/;这是您放置所有组件代码的地方。
  • 将以下内容添加到您的 application.js
//= require react
//= require react_ujs
//= require components

现在 .jsx 代码将被渲染,您可以在模板中添加一块 React,例如:




Ruby JSX

Babel 是 react-rails gem 的 Ruby 实现的核心,可以这样配置:

config.react.jsx_transform_options = {
  blacklist: ['spec.functionName', 'validation.react', 'strict'], # default options
  optional: ["transformerName"],  # pass extra babel options
  whitelist: ["useStrict"] # even more options
}

react-rails 安装到您的项目中后,重新启动服务器,任何 .js.jsx 文件都将在您的资产管道中进行转换。

有关 react-rails 的更多信息,请前往官方文档。

Python

要安装 python-react,请像这样使用 pip:

pip install react

现在,您可以通过提供 .jsx 组件的路径并使用渲染服务器为应用程序提供服务,使用 Python 应用程序渲染 React 代码。通常这是一个单独的 Node.js 进程。

要运行渲染服务器,请遵循这个简单的简短指南。

现在您可以像这样启动服务器:

node render_server.js

启动你的Python应用程序:

python app.py

并在浏览器中加载 http://127.0.0.1:5000 以查看 React 代码渲染。

姜戈

react 添加到您的 INSTALLED_APPS 并提供一些配置,如下所示:

INSTALLED_APPS = (
    # ...
    'react',
)

REACT = {
    'RENDER': not DEBUG,
    'RENDER_URL': 'http://127.0.0.1:8001/render',
}

流星

要将 React 添加到您的 Meteor 项目中,请通过以下方式执行此操作:

meteor npm install --save react react-dom

然后在 client/main.jsx 添加以下示例:

import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
 
import App from '../imports/ui/App.jsx';
 
Meteor.startup(() => {
  render(, document.getElementById('render-target'));
});

这是实例化一个 App React 组件,您将在 imports/ui/App.jsx 中定义该组件,例如:

import React, { Component } from 'react';

import Headline from './Headline.jsx';

// The App component - represents the whole app
export default class App extends Component {
  getHeadlines() {
    return [
      { _id: 1, text: 'Legalisation of medical marijuana goes worldwide!' },
      { _id: 2, text: 'Matt Brown goes inside the cult of scientology' },
      { _id: 3, text: 'The deep web: A criminals dream or fascinating freedom?' },
    ];
  }
 
  renderHeadlines() {
    return this.getHeadlines().map((headline) => (
      
    ));
  }
 
  render() {
    return (
      
        
          The latest headlines
        
 
        
          {this.renderHeadlines()}
        
      
    );
  }
}

Headline.jsx 内,使用以下代码:

import React, { Component, PropTypes } from 'react';
 
// Headline component - this will display a single news headline item from a iterated array
export default class Headline extends Component {
  render() {
    return (
      
  • {this.props.headline.text}
  • ); } } Headline.propTypes = { // This component gets the headline to display through a React prop. // We can use propTypes to indicate it is required headline: PropTypes.object.isRequired, };

    Meteor 已为 React 做好准备,并拥有官方文档。

    不再有{{车把}}

    需要注意的重要一点:当在 React 中使用 Meteor 时,默认的 {{handlebars}} 模板系统不再使用,因为由于项目中存在 React,它已失效。 p>

    所以不要使用 {{>; TemplateName}}Template.templateName 用于 JS 中的帮助程序和事件,您将在视图组件中定义所有内容,这些组件都是 React.component 的子类。 p>

    结论

    React 几乎可以用于任何使用 HTML 表示层的语言。许多潜在的软件产品都可以充分利用 React 的优势。

    React 使 UI View 层变得基于组件。与任何堆栈逻辑地合作意味着我们拥有一种通用的界面语言,Web 开发各个方面的设计人员都可以使用它。

    React 统一了我们项目的界面、品牌和所有部署中的一般应急措施,无论设备或平台有何限制。此外,在自由职业、基于客户的工作或大型组织内部,React 确保您的项目可重用代码。

    您可以创建自己的定制组件库,并立即在新项目中开始工作或翻新旧项目,快速轻松地创建完全反应式等距应用程序界面。

    React 是 Web 开发领域的一个重要里程碑,它有潜力成为任何开发人员的必备工具。不要落后。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    laravel组件介绍
    laravel组件介绍

    laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

    320

    2024.04.09

    laravel中间件介绍
    laravel中间件介绍

    laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

    278

    2024.04.09

    laravel使用的设计模式有哪些
    laravel使用的设计模式有哪些

    laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

    372

    2024.04.09

    thinkphp和laravel哪个简单
    thinkphp和laravel哪个简单

    对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    374

    2024.04.10

    laravel入门教程
    laravel入门教程

    本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

    85

    2025.08.05

    laravel实战教程
    laravel实战教程

    本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

    65

    2025.08.05

    laravel面试题
    laravel面试题

    本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

    68

    2025.08.05

    asp开发工具有哪些
    asp开发工具有哪些

    asp开发工具有Visual Studio、Dreamweaver、FrontPage、EditPlus、UltraEdit、SQL Server Management Studio、RAD Studio、Delphi、Asp.NET和Oracle SQL Developer。更多asp开发工具相关内容,详情请阅读本专题下面的其他文章,php中文网欢迎大家前来学习。

    362

    2023.10.23

    俄罗斯Yandex引擎入口
    俄罗斯Yandex引擎入口

    2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

    158

    2026.01.28

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号