`请输入代码`将HTML模板中的数据替换掉push进数组,再将数组render出来,界面只显示HTML代码,程序body如下:
<body>
<div id="wrap"></div>
<script src="data.js"></script>
<script type="text/babel">
let SingleImg = React.createClass({
render:function () {
let settings = data,
_html = `<div class="photo">
<div class="wrapper photo_front">
<div class="front">
<div class="img">
<img src="img/{imgSrc}" alt="index"/>
<p>{imgName}</p>
</div>
</div>
<div class="back">
<p>{imgTxt}</p>
</div>
</div>
</div>`,
result = [],
len = data.length,
i = 0;
for(;i<len; i++){
result.push(_html
.replace(/\{imgSrc\}/,settings[i].imgSrc)
.replace(/\{imgName\}/,settings[i].title)
.replace(/\{imgTxt\}/,settings[i].txt)
);
}
return <div >
{result}
</div>
}
});
var wrap = document.getElementById('wrap');
ReactDOM.render(
<SingleImg/>,
wrap
);
</script>
</body>
React
为了防止xss会对传入组件的html字符串进行转义所以才会这样。传入动态的html字符串可以用dangerouslySetInnerHTML
: