我想你可能對JSX的工作方式感到困惑。只是爲了澄清JSX是他們稱之爲「語法糖」的東西,它將React方法(如React.createElement)轉換爲類似語法的XML。例如:
var Nav;
// Input (JSX):
var app = <Nav color="blue" />;
// Output (JS):
var app = React.createElement(Nav, {color:"blue"});
(從陣營docs)
所以,據我所知,JSX語法實際上屬於在渲染方法。如果你真正需要的是分離和再利用純粹的表象代碼的最佳方式,你應該閱讀上分離你的應用到集裝箱和表象成分
https://medium.com/@learnreact/container-components-c0e67432e005#.dzjqc8yrn https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.mn9nf6lz6
無國籍/表象/啞組件只是返回JSX的函數。所以,你可以有你的模板組件:
import React from 'react';
//you need to import React to use JSX, as it will be expanded into React.createElement calls...
function Template(props){
return (
//...your template here...
);
}
然後你的類
import React, {Component} from 'react';
export default class Login extends Component {
render() {
return (<Template {...props}/>);
}
}
}
有道理?
這個想法是,你把HTML放在渲染方法,例如使用JSX:https://facebook.github.io/react/docs/jsx-in-depth.html – janhartmann