gpt4 book ai didi

node.js - 同构 React 和 JSX - 将组件渲染为服务器上的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:14 25 4
gpt4 key购买 nike

我试图在传递给客户端之前在服务器上渲染一个极其简单的组件,使用 gulp 和 babelify 进行转换,如下所示:

gulp.task("react-assessment", function(){
return browserify("./app/assessment/react/components/app.react.js")
.transform(babelify)
.bundle()
.pipe(source("reactBundle.js"))
.pipe(gulp.dest("./browser"))
});

该组件在客户端上运行良好:

var React = require("react");
var ReactDOM = require("react-dom");

var Title = React.createClass({
render: function(){
return <h1>Hello World</h1>
}
});

module.exports = ReactDOM.render(
<Title/>,
document.getElementById("react-assessment")
);

但是,当我使用 Express 需要 Node.js 中的文件时,服务器因意外 token 而崩溃

return <h1>Hello World</h1> 
^
SyntaxError: Unexpected token <

当我使用在组件文件顶部使用 /** @jsx React.DOM */ 的旧方法时,没有任何问题。

路线:

var express = require('express'),
router = express.Router(),
ReactDOMServer = require("react-dom/server");
JSX = require('node-jsx').install({
extension: '.jsx'
}),
AssessmentComponent = require("../react/components/app.react.jsx");

我哪里出错了?

最佳答案

使用babel/register解决。不需要React.DOM

关于node.js - 同构 React 和 JSX - 将组件渲染为服务器上的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33318576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com