我想你可能对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