얻기 시리즈하여 ToDoList 코드 최적화 반응 (사용하여 새로운 기능을 반응, ES6 문법)

코드 최적화

1  / * *
 2  - 오늘 우리는 ES6 문법, 새로운 기능에 의해 우리의 할 일 목록을 최적화하고 반응
 3  - 또한, 키의 마지막 버전이 오류의 문제를 해결하기 위해
 4  * /

ES6 해체 최적화 된 코드 할당을 사용하여

1  / * *
 2  - 우리는 개체의 속성을 필요로 할 때 코드가 원래의 객체에 의해 재산을 취득 할 수있는 후속 호출을 중지해야하지 않도록, 우리는 destructuring 할당을 사용할 수 있습니다
 . 3  - CONST = {}는이 인덱스입니다. 소품 ----->이 과제의 해체는 직접 인덱스를 사용 this.props.index 동일한 범위는 후속 사용된다.
. 4  - item.js 코드는 다음과 같이 수정 된 코드는 여기에 설명되지 app.js하고 수정한다.
. 5  * / 
6.  
7. 임포트 단편의 성분은 {} '반응'반작용 ]
 . 8  
. 9 개  클래스가 컴포넌트 {항목 확장
 10      deletItem = () => {
 . 11          CONST deletItem {} = 인덱스  .props 단계; // 할당 destructuring 
12          deletItem (지수)
 13이다      }
 14     () {렌더링
 15          CONST {} = 값  .props 단계; // 解构赋值
16          (
 17              <조각>
 18                  < DIV
 19                  의 onclick = { .deletItem}
 20                  >
 21                  {값}
 22                  </ div>
 23              </ 조각>
 24          )
 25      }
 26  }
 27  
28 수출 기본 상품

새로운 기능을 반응

. (1)  / * *
 2  - setState를 이전 버전 제공 반응 () 메소드, 객체만을 수신 할 수있다.
3  - 새로운 버전 setState를이 ()는 함수가 나타날 수있는 반응과 기능은 기본 인수 PrevState가
 4  - PrevState 전에 수정되지 않은 상태를 표현, 그것은 우리가 this.state를 이동 한 다음 시간을 사용하지 않아도 말을하는 것입니다 속성을 가져옵니다
 (5).  - 원래의 코드에 더 추출에 대한 논리적 인 기능을 사용하여 우리의 함수는 함수 부분과 지금, 너무 긴 렌더링에 기록 된
 6.  - 항목 어셈블리의 도입 이후 시간에 사용 문제 지정된 키 값을 주소 그리고 지금 우리가 인덱스를 사용, 각 항목에게 키 바인딩을 제공
 (7)  - 우리는 후속 가상 DOM 시간을 설명하고 우리가 키 할당을 제공하기 위해 개발 된 인덱스를 사용하지 않는 이유를 다음 설명한다.
8  - 이제 우리 app.js, 다음 코드를 최적화하기 위해이 기능을 사용합니다.
. 9  * / 
10 가져 부품 {} '반응'조각에서 반작용 ]
 . 11 로부터 항목 './item.js'
 (12)  
(13)가되는  클래스 {앱 상기 구성 요소를 확장
 14   생성자 (버팀대) {
 15      초 (버팀대)
 (16)      이 본 .STATE = {
 17.        inputValue의 경우 : ',' // 값을 저장된 값 입력 상자. 
(18)은        목록 [] // 각 값의 값을 저장하는 리. 
. (19)      }
 (20)이다    }
 21는    handleInputChange = (E) => {
 22      CONST 값 = ; e.target.value
 23는      이것을 (값}) ({inputValue의 대 () =>) .setState가 // setState를 새에 반응 () 함수는 함수를받을 수 있고,이 함수는 소포 생략 돌아갈 수 () 함수 본문 화살표를 사용하여 
24    }
 25    addList = () => {
 26 인      이 본을.setState ((PrevState)은 => { // setState를 PrevState 함수는 파라미터를 제공하는 반면, this.state이 파라미터를 변경하기 전에 나타내는 
27        CONST 목록 = [... prevState.list, prevState.inputValue]
 28        반환 {
 29          에서,
 30          inputValue의 경우 : ' // 첨가 입력 블록 비우는 완료된 후 
31        }
 32      })
 33이다    }
 34는    deletListItem = (인덱스) =>을 { // 때문에 바인드 기능의 사용의 결합 공정이있을 때 이 함수를 가리키는 화살표가있다하도록 실용적이지 
35       .setState ((PrevState) => {
 36        목록 =하자가 [... prevState.list]
 37       list.splice (인덱스 ,. 1 )
 38 인        {목록}
 39      })
 (40)    }
 (41)이다    // 원래 코드 우리 함수는 논리 부는 현재 기능으로 매핑하는 데 사용되며, 너무 긴 렌더링 작성된 
42 인    준 getItem가 = () => {
 43은      (
 44 인        이 본 .state.list.map ((아이템, 인덱스) => {
 45          (
 46 인            < 아이템 
 (47)            키 인덱스 = {} // 키 값 문제를 해결한다. 
48            값 = {} 아이템 
 49            지수 = {} 인덱스
 50            deletItem = {.deletListItem}
 51            > </ 항목>
 52          )
 (53)        })
 54      )
 55    }
 56    (렌더링) {
 57      (
 58        <조각>
 59        <div>
 60          < 입력
 (61)          의 onChange = { .handleInputChange}
 62          값 = { .state.inputValue} 
 63          />
 64          <버튼의 onclick = {  .addList}>提交</ 버튼>
 65        </ div>
66        <UL>
 67          { 이 본 .getItem () {} / * * 논리 함수 호출의 호출 클릭 밖으로. * / }
 68        </ UL>
 69        </ 조각>
 70      ),
 (71)이다    }
 72  }
 (73)은 내보내기 기본 앱;

후속 업데이트가 있습니다 ...........

추천

출처www.cnblogs.com/boye-1990/p/11367495.html