2
我試圖運行我的第一反應jsx文件,它的工作原理!但是,我沒有在我的jsx中編碼的2個導入語句。reactJS導入從'反應'反應;
import React from 'react';
import ReactDOM from 'react-dom';
我想我會需要這些進口2所以當JSX transpiles到JS(如React.createElement),該組件做出反應在範圍內。但即使沒有這兩種進口,它似乎也能奏效。
有人可以幫助我瞭解如何在沒有進口的情況下工作嗎?
感謝您的幫助!
編輯:我已經將我的代碼在這裏
script.jsx:
var Main = React.createClass({
getIntialState: function() {
return {
counter: 0
};
},
clickHandler: function() {
return {
counter: this.state.counter + 1
};
},
render: function() {
return (
<button onClick={this.clickHandler}>+2</button>
)
}
});
的package.json
{
"name": "reactjs",
"version": "1.0.0",
"description": "",
"main": "react.js",
"dependencies": {
"webpack": "^1.13.3"
},
"devDependencies": {
"babel-cli": "^6.18.0",
"babel-core": "^6.18.2",
"babel-loader": "^6.2.8",
"babel-preset-es2015": "^6.18.0",
"babel-preset-react": "^6.16.0",
"react": "^15.4.1",
"react-dom": "^15.4.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack --watch",
"build": "webpack -p"
},
"author": "",
"license": "ISC"
}
HTML文件
<html>
<head>
<title>
!My first React JS Component!
</title>
</head>
<body>
<div id="root"></div>
<script src="react.js"></script>
<script src="output.js"></script>
</body>
</html>
webpack.config .js
module.exports = {
entry: "./app/script.jsx",
output: {
filename: "output.js"
},
module: {
loaders: [
{
test: /\.(js|jsx)$/,
loader: 'babel-loader'
}
]
}
}
您可能正在全局範圍內使用該文件,並使用'。我的項目是用使用babel-loader的webpack捆綁軟件構建的 – InfiniteLoop
有沒有什麼機會可以製作某種可再現的例子(參見[mcve]),因此它更清晰,或者詳細說明您的設置如何工作? – Aurora0001