服务端渲染(SSR)的主要优势:
主要有两种方案:
# Gemfile
gem 'react_on_rails'
# 安装
bundle install
rails generate react_on_rails:install
Rails默认使用ExecJS,但它在处理复杂React应用时性能不佳。解决方案是使用mini_racer:
# Gemfile
gem 'mini_racer'
服务端渲染的状态需要与客户端同步,否则会出现水合(hydration)不匹配的问题:
# app/views/layouts/application.html.erb
<%= redux_store_hydration_data %>
需要确保Rails路由和React路由能够正确匹配:
# config/routes.rb
get '*path', to: 'react#index', constraints: -> (request) do
!request.xhr? && request.format.html?
end
服务端渲染可能会增加服务器负载,可以考虑:
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 许可协议,转载请注明出处。