以《深刻学习react技术栈》为线索,记录下学习React的重要知识内容。本系列文章没有涵盖所有的react知识内容,只是记录下了学习之路上的重要知识点,一方面是本身的总结,同时拿出来和在学习react的人们一块分享,共同进步。html
网上能搜出来一大片,想要了解的自行谷歌,咱们仍是直奔学习的主题。java
JSX基本语法总结:react
1.XML基本语法学习
标签可任意嵌套code
const List =()=>( <div> <Title> <ul> <li></li> <li></li> </ul> </Title> </div> );
注意事项总结:
(1)定义标签时,只容许被一个标签包裹
(2)标签必定要闭合component
2.元素类型htm
两种不一样的元素:DOM元素和组件元素
注意事项(在JSX的对应原则)总结:
(1)HTML标签首字母为小写,组件元素首字母为大写
(2)JSX在一个在一个组件的子元素位置使用注释要用{}包裹起来ip
const App =()=>( <Nav> {/*节点注释*/} <Person /* 多行注释 */ user={firstName:'hello',lastName:'world'} > </Nav> );
(3)DOCTYPE是没有闭合的,咱们没法渲染它。常见的作法是:构造一个保存HTML的变量,将DOCTYPE与整个HTML标签渲染后的结果串联起来字符串
3.元素属性
注意事项:
(1)在JSX中从DOM属性到JSX中的属性,有两个例外的转换:
class属性改成className
for属性改成htmlFor
(2)组件的属性是彻底自定义的属性,也能够理解为实现组件所须要的参数it
const Header = ()=>( <h3 title={title}>{childern}></h3> ); //调用: <Header title="hello,world">Hello,world</Header>
(3)Boolean属性:省略的默认的JSX设为 true。要传入false时,必须使用属性表达式。这经常使用于表单元素
<checkbox checked/>等价为<checkbox checked={true}/> //若是想设置成false,必须: <checkbox checked={false}/>
(4)展开属性:若是你不知道要设置哪些 props,那么如今最好不要设置它。由于React不能帮你你检查属性类型(propTypes)。这样即便组建的属性类型有错误,也不能获得清晰地错误提示。
(5)自定义HTML属性:在JSX中传入自定义属性,React是不会渲染的。若是要使用HTML自定义属性,要使用data-前缀(这与HTML标准是一致的)。
<div data-attr="xxx"/></div>
然而在自定义标签中,任意的属性都是支持的:
<x-my-component custom-attr="foo"/>
4.javaScript属性表达式
注意事项:
(1)属性值要用表达式,使用{}替换便可
const person = <Person name={window.isLoggedIn ? window.name : ""}>;
(2)子组件也能够用做表达式
const person = <Person name={window.isLoggedIn ? <Nav/> : <Login>};
5.HTML转义
注意事项:
(1)HTML会将全部要显示到DOmain的字符串转义,防止XSS
(2)React提供了dangerouslySetInnerHTML属性避免React转义字符
下一篇内容咱们讲React组件,欢迎关注。