Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React流星开放图标签_Reactjs_Meteor_React Router - Fatal编程技术网

Reactjs React流星开放图标签

Reactjs React流星开放图标签,reactjs,meteor,react-router,Reactjs,Meteor,React Router,如何使用meteor和react/react路由器从服务器端呈现开放图形标记 我不知道如何使用反应头盔与流星和反应路由器 Thx 编辑: 我用react创建了一个meteor应用程序。结构如下所示: client/main.js client/main.html->在这里,我在div-id:上呈现应用程序,并获得基本的html标记,如head 导入/startup/client/routes.jsx-->react路由器的路由逻辑 比如: const myRoutes = ( <

如何使用meteor和react/react路由器从服务器端呈现开放图形标记

我不知道如何使用反应头盔与流星和反应路由器

Thx


编辑:

我用react创建了一个meteor应用程序。结构如下所示:

client/main.js
client/main.html->在这里,我在div-id:上呈现应用程序,并获得基本的html标记,如head

导入/startup/client/routes.jsx-->react路由器的路由逻辑

比如:

const myRoutes = (
    <Router history={browserHistory}>
      <Route path="/" component={App}>
          <IndexRoute component={Home}/>
          <Redirect from='*' to='/404' />
      </Route>
    </Router>
);
(其中app是我的html文件上的div id)

server/main.js

(非常简单)

所以。。。我不明白文档上的服务器部分

“…作为字符串输出”? “…作为反应组分”

我必须从服务器端“重新呈现”html文件? 我是说。。。在文档中,服务器似乎返回了一个变量作为html标记结构。。。 我不清楚,我也不知道这对我来说是否正确


编辑: 这篇文章帮助我解决了我的问题:

在客户端,渲染React组件时,您有一个DOM,并且会为每个组件(及其部分)创建DOM节点/元素

然后,需要将该标记插入到要发送给用户的HTML中

const html = `
  <!doctype html>
  <html>
    <head></head>
    <body>
      <div id='root'>${html}</div>
      <script src="/static/bundle.js"></script>
    </body>
  </html>`

res.send(html);
然后,您可以在
html
模板中插入所需的值,这些值将包含在发送给用户的html中。由于开放图形标记是元标记,因此它们将包含在
head
变量的
meta
属性中

const html = `
  <!doctype html>
  <html>
    <head>
      ${head.meta.toString()}
    </head>
    <body>
      <div id='root'>${html}</div>
      <script src="/static/bundle.js"></script>
    </body>
  </html>`
const html=`
${head.meta.toString()}
${html}
`

您能否包含您尝试执行的操作中的代码?
react helmet
文档似乎非常直观地说明了如何做到这一点:我编辑了我的原始问题。好的,谢谢,我更清楚一点。但是,我不确定。。。“res.send(html);”与express服务器或其他更“低级”的服务器有关吗?还是应该和流星有关?我打算这样挖。谢谢。
res.send
来自
express
import { renderToString } from "react-dom/server"

const markup = renderToString(<App />)
const html = `
  <!doctype html>
  <html>
    <head></head>
    <body>
      <div id='root'>${html}</div>
      <script src="/static/bundle.js"></script>
    </body>
  </html>`

res.send(html);
const head = Helmet.rewind()
const html = `
  <!doctype html>
  <html>
    <head>
      ${head.meta.toString()}
    </head>
    <body>
      <div id='root'>${html}</div>
      <script src="/static/bundle.js"></script>
    </body>
  </html>`