2016-06-05 1 views
-1

Ищете способ сделать следующее, возможно ли это?как вызвать методы/компоненты в выпуске пакета webpack?

// main.jsx 
export default class Main extends React.Component {} 

// include webpack bundle output and call it from html template 
<div> 
<script src="/webpack/app-bundle.js"></script> 
<script>Main() /** call method in bundle **/ </script> 
</div> 

Например, WebPack в состоянии «выставить» JQuery с этой конфигурации:

{ test: require.resolve('jquery'), loader: 'expose?$' } 

Аналогично есть способ, чтобы «выставить» приложение определенный компонент реагировать? Благодарю.

+1

Что вы Прецедент именно? – Pcriulan

+0

Например, для рендеринга «Main» с базой реквизита на данных времени выполнения сервера (без дополнительного вызова ajax). – sglai

ответ

1

Вы должны рассмотреть это другим способом, то есть: связь между вашим основным файлом и вашим пакетом. Сделайте это, вы можете прикрепить некоторые данные к объекту window, это определит глобально доступные переменные, к которым вы можете получить доступ в своем комплекте.

Например:

// main.jsx 
export default class Main extends React.Component { render() => <div>{this.props.foo}</div> } 

ReactDOM.render(<Main foo={window.MYAPP.foo}/>, document.getElementById('app')) 

// include webpack bundle output and call it from html template 
<div id="app></div> 
<script>window.MYAPP.foo = 'bar'</script> 
<script src="/webpack/app-bundle.js"></script> 
</div> 
+0

Спасибо за ваш ответ. Подобно тому, что вы предложили, я в конечном итоге использовал