我创建了一个简单的React组件。我希望该组件用作插件或小部件。我从Writing embeddable Javascript plugin with React & Webpack获得了帮助,并设法将我的webpack设置如下:
output: {
path: __dirname + '/dist',
filename: './app/components/FirstWidgetIndex.js',
publicPath: '/',
library: 'tracking',
libraryTarget: 'umd',
umdNamedDefine: true,
}
我的组件如下:
import React, { Component, PropTypes } from 'react';
export default class FirstWidget extends Component {
constructor() {
super();
}
render() {
return (
<div className="setting-fullpage">
<p>React Widget</p>
</div>
)
}
}
const mapStateToProps = state => {
//
}
module.exports = FirstWidget
我的FirstWidgetIndex
文件(webpack的入口点)如下:
import React, { Component, PropTypes } from 'react';
import { render } from 'react-dom';
import App from './FirstWidget.js';
render(
<App />,
document.getElementById('app')
);
现在,我想将此FirstWidget
添加为可嵌入的小部件。我在html
文件中的第三方域名上调用它,如下所示:
<html>
<head>
<script type="text/jsx" src="https://mydomain/firstWidget"></script>
</head>
<body>
<p>Testing React Widget</p>
<div id='app'></div>
</body>
</html>
但它没有在html
页面上呈现我的小部件。如果我遗失任何东西,有人可以建议吗?
答案 0 :(得分:2)
你需要知道反应会在哪里呈现,例如:
<强> FirstWidget.js 强>
import React, { Component } from 'react';
export default class FirstWidget extends Component {
render () {
return (
<h1>Hello world</h1>
);
}
}
<强> index.js 强>
这是你在webpack中的切入点
import React from 'react';
import { render } from 'react-dom';
import App from './FirstWidget.js';
render(
<App />,
document.getElementById('app')
);
在您的 index.html 中,您需要拥有app
id的标记。
<div id='app'></div>
注意:
index.js
中的代码必须与上面的代码类似,它应该是webpack配置中的入口点。