昨天学习到了JSX的几大特色与优点之後,今天就正式来学习用JSX搭配react。载入JSX之前先引用babel-core这个JSX的编译器。
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
载入JSX有两种方式:
<script type="text/babel">
</script>
<script type="text/jsx" src="test.jsx"></script>
以下用官网的范例作为练习:
function formatName(user) {
return user.firstName+ ' ' + user.lastName;
}
const user = {
firstName: '陈',
lastName: '小羽'
};
// 产生h1的react元素
const element = (
<h1>
Hello, {formatName(user)}!
</h1>
);
// 将react元素渲染到html架构里
ReactDOM.render(
element,
document.getElementById('app')
);
JSX同样可以做到如HTML标签上的属性设置,但要注意class和for为Javascript的保留关键用字,若要设定的话请用className和htmlFor取代。
<div className="greeting">
<p>Hello {formatName(user)}</p>
<label htmlFor="name"><input type="text" id="name"/></label>
<img src="" alt="" />
</div>
另外需要注意下列两点:
<div>
标签。<input>
或<img>
的话,需要自行加上'/'关闭标签。const element = (
/*
多行
注解
*/
// 单行注解
<content
/*
多行
注解
*/
name={formatName(user)}// 单行注解
/>
);
在JSX中若要引用CSS样式的话,用两个{}包住,第一个{}是JSX 语法,第二个为JavaScript物件,命名方式为驼峰式命名法,多个样式要引用的话用','做区隔。
<div className="greeting" style={{fontSize:'36px',fontWeight:'bold'}}>
<p>Hello {formatName(user)}</p>
</div>
<<: 【D21】制作讯号灯#5:使用三大法人制作外资讯号灯
这篇我是在讨论提供反馈 (giving feedback)。但对主管来说,如何接受反馈 (takin...
当客体机在 Proxmox VE 节点上运作且客体磁碟储存於节点的本机储存即区时,若想要让客体机的...
需求与场景 最近我们因为要在直播加上打赏功能,所以要做一些送礼时的动画 需求就是 在我们的 reac...
SFC是什麽 Single-file components单一元件档是一个集合HTML、JavaSc...
前言:相信大家对於「树」都不陌生,资料结构中的树其实是模拟现实生活中的树干、树枝和叶子,相当於树状结...