[关闭]
@yacent 2017-10-10T17:23:46.000000Z 字数 7335 阅读 976

React框架学习笔记

React学习笔记 前端框架


Quick Start

Introducing JSX


Render Element

ReactDOM.render(ele, mount)

Components and Props

=> component
    -> functional -> return JSX
    -> ES6 class (recommended)
=> component 只能返回一个根节点,即只返回一个 div,将其他都包含在div当中
=> props are read Only

state & lifeCycle


Handling Events (on + EventName)


Conditional Rendering

  1. { isI18n &&
  2. <div>
  3. ...
  4. </div>
  5. }

List and Keys

  1. class Example extends React.Component {
  2. constructor(props) {
  3. super(props);
  4. }
  5. render () {
  6. const listItems = numbers.map((number) =>
  7. <li key={number.toString()}>
  8. {number}
  9. </li>
  10. );
  11. return (
  12. <ul>
  13. {listItems}
  14. </ul>
  15. )
  16. }
  17. }

Forms


Lifting State Up


Composition vs Inheritance


Thinking in React


Advanced Guide

JSX in depth


Typechecking with PropsType


Refs and the DOM

  1. // Parent 当中 this.textInput 直接为 子组件的 所绑定的引用 Input
  2. class Parent extends React.Component {
  3. constructor (props) {
  4. super(props);
  5. }
  6. render () {
  7. return (
  8. <Children inputRef={(input) => this.textInput = input}></Children>
  9. )
  10. }
  11. }
  12. class Children extends React.Component {
  13. constructor (props) {
  14. super(props);
  15. }
  16. render () {
  17. return (
  18. <div>
  19. <input ref={this.props.inputRef} value="sdasd">
  20. </div>
  21. )
  22. }
  23. }

Uncontrolled Component(不建议使用,不好维护)

  1. class Parent extends React.Component {
  2. constructor (props) {
  3. super(props);
  4. }
  5. handleSubmit () {
  6. this.textInput.value // 111
  7. }
  8. render () {
  9. return (
  10. <input ref={(input) => {this.textInput = input}} value="111">
  11. <button onSubmit={this.handleSubmit}></button>
  12. )
  13. }
  14. }

但是我们推荐使用 controlled component,有如下的几个原因


Optimizing Performance

  1. return Object.assing({}, state, payload)

React without ES6

主要是通过React提供一些原生的接口,比如 React.createElement 等去实现 es6 中的语法能实现的东西,更多详情可以直接去官网看


React Without JSX

没有JSX支持的话,就用回 React.createElement,JSX就只是其一个语法糖。


Reconciliation


Context


Web Component (了解即可)


Higher-Order Components


Intergrating with Other Libraries


Accessibility(可用性)

主要是使网站能够给各种人用,官网里面有挺多有用的建议,可以去看,很多资源。主要是涉及 ·aria-*· 的相关属性


Reference(一些引用、接口等)

React Top-level API

React.Component的一些 lifecycle

other API: setState()forceUpdate()
class properties: defaultPropsdisplayName
instance properties: propsstate


ReactDOM (import ReactDOM from 'react-dom')


ReactDOMServer (import ReactDOMServer from 'react-dom/server')

主要是在服务端去使用react进行渲染成页面


DOM Elements


SyntheticEvents (人为定义事件)


Test Utilities

常用的一些测试库: Jest、anzyme、Mocha等等


Shallow Renderer

写测试时,shallow rendering很有用,可以一步步的控制渲染

自测结果

创建集群

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注