react文档阅读笔记----JSX属性
来源:互联网 发布:怎么建数据库 编辑:程序博客网 时间:2024/06/15 01:37
JSX属性
.
操作符在JSX中的应用
如果一个模块
export
出去多个React
组件,你可以使用.
来获取各个组件。
import React from 'react';const MyComponents = { DatePicker: function DatePicker(props) { return <div>Imagine a {props.color} datepicker here.</div>; }}function BlueDatePicker() { return <MyComponents.DatePicker color="blue" />;}
用户自定义的组件标签必须以大写字母开头
防止和HTML原有的标签重名。
不能使用[]
当对象的属性是变量的时候,我们通常使用
[]
来获取属性值,但是JSX中不支持这种表达式。要想获取到相应的组件,需要先用变量将组件获取到,然后再使用JSX表达式。
import React from 'react';import { PhotoStory, VideoStory } from './stories';const components = { photo: PhotoStory, video: VideoStory};function Story(props) { // Wrong! JSX type can't be an expression. return <components[props.storyType] story={props.story} />;}import React from 'react';import { PhotoStory, VideoStory } from './stories';const components = { photo: PhotoStory, video: VideoStory};function Story(props) { // Correct! JSX type can be a capitalized variable. const SpecificStory = components[props.storyType]; return <SpecificStory story={props.story} />;}
JSX属性值
- 可以使用javascript表达式:
你可以使用javascript表达式作为JSX的属性值。只要包在
{}
中即可:
<MyComponent foo={1 + 2 + 3 + 4} />
对于
MyComponent
,属性props.foo
的值为10
。因为这是1+2+3+4
的执行结果。但是
if
语句和for
循环这种并不是javascript
表达式。但是你可以在外面使用它们,达到想要的效果。
function NumberDescriber(props) { let description; if (props.number % 2 == 0) { description = <strong>even</strong>; } else { description = <i>odd</i>; } return <div>{props.number} is an {description} number</div>;}
- 字符串
字符串有两种书写方式:
<MyComponent message="hello world" /><MyComponent message={'hello world'} />
你可以直接设置属性,因为HTML的属性默认是字符串类型的,所以两种是等价的。
<MyComponent message="<3" /><MyComponent message={'<3'} />
- boolean值的属性
属性值默认是true
,所以有以下两种表达方式:
<MyTextBox autocomplete /><MyTextBox autocomplete={true} />
- 解构赋值属性
如果属性全都包含在一个对象里面,这时候你想传入到JSX
中,你可以使用...
传入。以下两种写法等价:
function App1() { return <Greeting firstName="Ben" lastName="Hector" />;}function App2() { const props = {firstName: 'Ben', lastName: 'Hector'}; return <Greeting {...props} />;}
你也可以挑选对象里面的一些属性处理过后再传入部分到
JSX
中:
const Button = props => { const { kind, ...other } = props; const className = kind === "primary" ? "PrimaryButton" : "SecondaryButton"; return <button className={className} {...other} />;};const App = () => { return ( <div> <Button kind="primary" onClick={() => console.log("clicked!")}> Hello World! </Button> </div> );};
阅读全文
0 0
- react文档阅读笔记----JSX属性
- <React: Up and Running>阅读笔记 — JSX
- React官方文档--Introducing JSX
- react-bits:JSX扩展属性
- React实践系列笔记-JSX
- react学习笔记 item2 --- JSX
- React JSX
- React JSX
- React Native学习笔记(2)--React与JSX语法
- React中文教程翻译文档 - JSX Syntax(语法)
- React学习笔记(3)-- JSX语法及特点介绍
- React Native学习笔记(二)JSX 语法学习
- React入门笔记(一) — 深入理解JSX
- React Native入门学习笔记三(JSX语法)
- React入门笔记(一) — 深入理解JSX
- React入门笔记(一):简介和JSX
- React学习笔记-模板、ReactDOM.render()、JSX语法
- React——JSX
- golang操作memcached
- linux下C程序的编译链接
- 用两个线程玩猜数字游戏,第一个线程负责随机给出1~100之间的一个整数,第二个线程负责猜出这个数。要求每当第二个线程给出自己的猜测后,第一个线程都会提示“猜小了”、“猜大了”或“猜对
- 转载 Java 代码性能优化总结
- 720. Longest Word in Dictionary
- react文档阅读笔记----JSX属性
- 码的, hibernate, 添加新表后,得到 表的 主键ID
- Jackson之jackson-core
- LCD
- hdu 5459(递推+步步取模)
- 乔姆斯基4种文法的判定和区别
- OpenResty 最佳实践学习--实战演习笔记(5)
- KMP
- 用Python做的简单学生通讯录