React Components-HTML模板的存储位置
React Components - Where to store HTML Templates
完成新手React,并尝试找出如何加载组件的HTML,而不是将其直接插入到呈现方法中。例如
import React, {Component} from 'react';
export default class Login extends Component {
render() {
return (
<!-- how can I provide a link to the HTML template for here? -->
);
}
}
为了插入原始HTML,React有一个属性dangerouslySetInnerHTML。
<div dangerouslySetInnerHTML={createMarkup()} />
如果你想要某种类型的组织,你可以使用变量来设置html,然后将其分配给呈现函数,但React不使用html模板
var hello = React.createClass({
render: yourVariable
});
我想您可能对JSX的工作方式感到困惑。为了以防万一,我想澄清一下,JSX就是他们所说的"语法糖",它将React.createElement等React方法转化为类似XML的语法。例如:
var Nav;
// Input (JSX):
var app = <Nav color="blue" />;
// Output (JS):
var app = React.createElement(Nav, {color:"blue"});
(来自React文档)
因此,据我所知,JSX语法实际上属于呈现方法。如果你真正想要的是分离和重用纯表示代码的最佳方式,你应该阅读将你的应用程序分离为容器和表示组件
https://medium.com/@learnreact/container-components-c0e67432e005#.dzjqc8yrnhttps://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.mn9nf6lz6
无状态/呈现性/Dumb组件只是返回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}/>);
}
}
}
有道理吗?
相关文章:
- Javascript 地理位置:将坐标存储在数组中
- Chrome/Tampermonkey 用户脚本存储在文件系统上的什么位置
- 如何在 Google App Engine 上存储 HTML 5 地理位置数据
- 在存储位置加载页面
- django-ckeditor:存储config.js的位置
- 创建存储按钮单击位置的数组
- 存储字母表中每个字母在所需位置的字符串中出现的次数
- 如何在文件中存储带有所需位置标记的地图
- 如何将标记位置保存到传单中的本地存储
- 我应该在 Laravel 5 中存储 JS 的什么位置
- 当用户不想被记住时存储令牌的位置
- 全局变量存储在 Node.JS 中的什么位置?节点中是否有类似窗口的对象
- 在 Redux 应用程序中写入本地存储的位置
- HTML5应用程序缓存文件存储在客户端的位置
- 浏览器如何存储用于自动完成的数据以及存储位置
- 如何找到firepad编辑器的文本存储位置以及如何清除编辑器
- Javascript和HTML5地理位置-如何存储位置
- Inc/dec逻辑遍历多个数组值并在数组中存储位置
- 检查多个本地存储位置
- React Components-HTML模板的存储位置