Мы используем Laravel Mix для компиляции реагирующих компонентов и подачи их по отдельности на соответствующие страницы, где они необходимы — это не SPA.
Я новичок в React, так что извините за невежество. Я пытаюсь разобраться в текущей настройке и выяснить, является ли это правильным способом размещения нескольких компонентов на одной странице.
Таким образом, приведенный ниже шаблон был скопирован и вставлен в каждый компонент, изменив только селектор, например:
'use strict'
import React from 'react'
import ReactDOM from 'react-dom'
import {Provider} from 'react-redux'
import {createStore, applyMiddleware, compose} from 'redux'
import ReduxPromise from 'redux-promise'
import App from './containers/App'
import reducers from './reducers'
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
const enhancer = composeEnhancers(
applyMiddleware(ReduxPromise),
)
const newstore = createStore(reducers, enhancer)
ReactDOM.render(
<Provider store={newstore}>
<App />
</Provider>, document.querySelector('.component-foo')
)
Некоторые компоненты также немного отличаются тем, как создается магазин, например. redux devtools присутствует не всегда.
Итак, исходя из Vue.js, для меня это не имеет особого смысла — в Vue.js вы использовали бы один файл для импорта всего, что связано с фреймворком, а затем загружали бы каждый нужный вам компонент с помощью одной строки кода. Но эта настройка React, похоже, делает прямо противоположное: загружает отдельный экземпляр React и Redux для каждого компонента на странице, как если бы у меня было несколько компонентов root/app в Vue.js.
Правильно ли предположить, что React собирается и загружается несколько раз, и будет ли это правильным способом?