PHP V8Js渲染反应用typescript编写

时间:2017-03-07 13:38:02

标签: php reactjs

我按照官方打字稿文档中的说明一直在用typescript编写反应组件:

https://www.typescriptlang.org/docs/handbook/react-&-webpack.html

我正在使用V8Js php扩展来在服务器端渲染React, 但似乎我对使用V8Js的正确方法缺乏了解。

这是我的反应应用程序:(客户端呈现)

http://codepen.io/MasterScripter/pen/xqRZQO

我尝试在服务器端渲染:

File: V8Js::compileString() 

Line Number: 209 

Source Line: module.exports = ReactDOM; 

Trace: ReferenceError: ReactDOM is not defined
at Object.setPrototypeOf.__proto__ (V8Js::compileString():209:18)
at __webpack_require__ (V8Js::compileString():47:30)
at Object.<anonymous> (V8Js::compileString():300:16)
at __webpack_require__ (V8Js::compileString():47:30)
at module.exports (V8Js::compileString():93:18)
at V8Js::compileString():96:10

'react.js'包括原始反应和反应代码, 'bundle.js'包含webpack包,与上面笔中的相同。

我收到此错误:

{"from":"boris.kogan81@gmail.com",
"to":"boris.kogan81@gmail.com",
"subject":"Verify your email",
"text":"Hello,<br> Please click on the link to verify your email.<br><a href=https://mail-verification-baruchkogan.c9users.io/verify/borisbaruch kogan/Zr6expRlUhnKrXzBHg9X1gyT9laFSl1w91wrESv4B25tWnBDSphp8wKLTbeV4cFf>Click here to verify</a>"
}

任何建议/提示我如何正确地做到这一点?

1 个答案:

答案 0 :(得分:4)

看起来你需要添加

$react[] = "var React = global.React, ReactDOM = global.ReactDOM, ReactDOMServer = global.ReactDOMServer;";

而不是

$react[] = "var React = global.React";

(我没有对它进行过测试;仅基于this。我对V8JS也没有多少经验。我建议您阅读this以获得精彩的介绍。)