,要使用在JSX中用大括号{}将包javascript表达式包起来就可以使用了。
在大括号{ }中可以使用:
等等...
function greeting(){
return 'Hello'
};
const name = 'Amy';
function App() {
return (
<h1>
{greeting()+ ','+name}
</h1>
)};
因为只能使用 JavaScript表达式,所以在 JSX 无法使用 if (if 是一个陈述式) ,但是可以使用 JavaScript 三元运算子。
function App() {
return (
<a>{data.login?'登出':'登入'}</a>
)};
在编译之後,JSX转换成一个function返回的Javascript的物件形式(请参考第七天的文章)。
可以在function里的if 跟 for 回圈中使用 JSX,可以在JSX中使用function传入的参数。
function getName(name) {
if (name {
return <h1>Hello, {name}!</h1>;
}
return <h1>Hello, admin.</h1>;
}
React可以使用html标签和React自定的元件标签
html标签使用英文小写字做为开头
const element =<div>Hello!</div>
自订元件标签使用英文大写字做为开头(可使用大驼峰写法)
const element =<MyComponent>Hello!</MyComponent>
跟 HTML 一样 JSX 的 tag 可以有属性:
可以使用引号,引号里面的属性值的型态是字串
const element = <img src="image/image.jpg" />;
也可以透过 { }
使用javascript给予不同型态的动态属性值:
const element = <img src={webImage.Url} />
因为 JSX 是 JavaScript,所以React元素的属性名称也是按照 JavaScript 原生的语法中的className去定义属性。而 for 则是要用 htmlFor。
例如:
const element = <h1 className="title">Hello, world!</h1>;
在 JSX 包含开始与结束标签的情形下,夹在两者之间的内容为children,我们可以靠children传递状态( prop)到元件之中。在後面文章会详细说明React的prop传递。
Children的类型有很多种:
JavaScript 表达式、字串、Functions、另一个元件都能是Children。
const element =
<MyComponent>
'标签里面的都称为Children'
</MyComponent>
如果标签内为空,要用 /> 关闭这个标签
const element = <img src={webImage.Url} />
多个元素的情况下会造成无法编译为React.createElement的形式
需要把子元素包在一个根元素下面,像下面范例中最外层的 <div></div>
。
//错误
function App() {
return (
<h1>标题</h1>
<p>内文</p>
)};
//必须有根元素
function App() {
return (
<div>
<h1>标题</h1>
<p>内文</p>
</div>
)};
从 React 16 起,新增了 Fragment 的功能,让你不需要在 DOM 中增加这个额外节点了:
function App() {
return (
<>
<h1>标题</h1>
<p>内文</p>
</>
)};
<<: 【D9】厨具熟练後制作精致:使用历史资料的Kbar做MA(移动平均线)图
>>: [FGL] TYPE / FUNCTION / INTERFACE 让FGL更贴近物件语言
网路层协议 基本过程 终端设备藉由网路传输到另一个终端 经过以下四个基本过程 终端编址(addres...
文章参考自 https://juejin.im/post/6844903744518389768 h...
运作方式 经过前面这麽漫长的铺陈,我们终於要来讲 annotation processor 了! 这...
【YC的迷路青春】 如果不要用预设的路径,例如专案是用tomcat起的,我们不想看tomcat的lo...
虽然不能进行人与人的连结 但我们可以进行装置与装置的连结~(^ω^)人(^ω^) 爲什麽要让你连进我...