Как сделать рендеринг на стороне сервера с Reacjs.Net вместе с Redux?

Я пытаюсь выполнить рендеринг на стороне сервера с помощью приложения, созданного в ASP.NET MVC, с использованием ReactJS и Redux. Я использую ReacJS.Net.

Мои компоненты прекрасно справляются с клиентским рендерингом.

Мое приложение может быть одним из примеров отсюда: http://redux.js.org/docs/basics/UsageWithReact.html. Вот основной код (для клиентского рендеринга).

import React from 'react'
import { render } from 'react-dom'
import { Provider } from 'react-redux'
import { createStore } from 'redux'
import todoApp from './reducers'
import App from './components/App'

let store = createStore(todoApp)

render(
  <Provider store={store}>
     <App />
  </Provider>,
 document.getElementById('root')
)

Как это сделать с помощью ReacJS.NET с рендерингом на стороне сервера?


person Climooo    schedule 11.07.2016    source источник
comment
ты узнал как это сделать?   -  person Rana    schedule 17.03.2017
comment
@Rana Нет, я не нашел решения   -  person Climooo    schedule 18.03.2017
comment
Сначала я бы порекомендовал вам проверить документацию от ReactJS.NET относительно SSR. Во-вторых, для SSR решение Redux состоит в том, чтобы внедрить начальное состояние в глобальную переменную на стороне сервера при рендеринге HTML-кода приложения. Пример: <script>window.__MY_STATE__ = {...}</script>. В клиенте вы можете получить состояние из этой переменной. Это некрасиво, но это работает, и это обычная техника.   -  person Andrey Luiz    schedule 15.06.2017
comment
Я давно проверял эту документацию. Но там не говорится о Redux, и речь идет не только о передаче переменной, как вы говорите (или я что-то упускаю). Моя проблема заключается в инициализации хранилища и создании компонента с помощью Provider. Я не знаю, как это сделать с ReactJS.NET.   -  person Climooo    schedule 16.06.2017


Ответы (1)


Я думаю, вам следует начать здесь. Я не уверен насчет Redux, но это многое объясняет:

https://reactjs.net/guides/server-side-rendering.html

И есть также действительно хороший пример рендеринга реакции на стороне сервера:

https://github.com/systempioneer/React-Umbraco-Example

он построен с помощью Umbraco, но Umbraco — это CMS на основе MVC, поэтому вы можете в значительной степени понять основы.

person Jabberwocky    schedule 04.06.2018
comment
Redux действительно важная вещь здесь. Без него бесполезно. Похоже, что в документации для ReactJS.NET упоминается только передача реквизитов, но не инициализация хранилища избыточности. - person Luke; 02.12.2020
comment
@Luke - Ты как-то разобрался с этим = D - person Markus Knappen Johansson; 22.01.2021
comment
К сожалению, нет. Я закончил тем, что поместил состояние в виде десериализованной строки, которую затем взял в редуксе. Нет рендеринга на стороне сервера, так как в моем случае мне не нужен рендеринг на стороне сервера. - person Luke; 23.01.2021