React_6
CRUD
最初の
イベントと構成部品
イベントに基づいて対応するイベントを作成して、構成部品をロードします.
パターンに従ってロードされるため、ReadControlというコンポーネントが個別に作成されます.
要素自体を変数に配置し、read
およびwelcome
モードでのみ、要素を導出することができる.
新しい要素を追加するイベント
Create
CRUDのcreate、update、deleteボタンを作成し、それに関連するコンポーネントControl.js
を作成します.onChangeMode
関数によって、各機能の値はmode
に変更されます.
submitにより、イベントオブジェクトe
にデバッグを行い、e.target.title.value
、e.target.desc.value
にそれぞれ入力された値を得た.
CreateContentコンポーネントに変更され、それぞれの値が見つかりました.
Push VS concat
pushは元のデータ自体を変更します.
concatは、元のデータを変更せずに新しい配列を返します.
createの場合はpushを避けます.
どうしたんですか.
範囲が広がると思うと
TOCとはまったく関係のない構成部品をクリックするとTOC->もレンダリングされますふような仕事
では、選択的にレンダリングできますか?shouldComponentUpdate
であってもよい.
shouldComponentUpdate
この関数でreturn値をfalseに設定した場合、renderは呼び出されません.
パラメータは2種類あげられます.shouldComponentUpdate(newProps, newState)
各Props変更時の値、State変更時の値.shouldComponentUpdate(newProps, newState) {
console.log(
"===> TOC render shouldComponentUpdate",
newProps.data,
this.props.data
)
return false;
}
newPropsで変更した値を知ることができます.
this.props.データは現在の値を知ることができます.
TOCに入力したデータのprops値が変化した場合は、レンダリングしないでください.shouldComponentUpdate(newProps, newState) {
console.log(
"===> TOC render shouldComponentUpdate",
newProps.data,
this.props.data
)
if (this.props.data === newProps.data) {
return false
}
return true
}
pushを使用してpropsを追加すると、ソースファイル自体が変更されるため、選択的にレンダリングできません.
Immutable
原本は交換しない.
整列
アレイはアレイをコピーします.from()var a = [1,2,3];
var b = Array.from(a);
a === b
---------> FALSE
内容は同じですが、全く異なる配列です.住所が違うので(?)
オブジェクト
オブジェクトオブジェクトをコピーします.assign()Var a = {name:’Kim’}
Object.assign({},a);
var a = {name:'kim'}
var b = Object.assign({},a)
a === b
---------> false
b.name = 'lee'
"lee"
console.log(a,b)
{name: "kim"} {name: "lee"}
var b = Object.assign({left: 1, right: 2},a)
b
{left: 1, right: 2, name: "kim"}
コンテンツは同じですが、まったく異なるオブジェクトです.
注意!
Push,concat,...これらを覚えながら、オリジナルの不変性に注意してください.これを実現するのに役立つライブラリは可変ではありません.js
Immutable.jsライブラリを使用すると、無条件にコピーして使用するため、不変性を維持できます.
Reference
この問題について(React_6), 我々は、より多くの情報をここで見つけました
https://velog.io/@aksel26/React6-zgcumlvc
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
shouldComponentUpdate(newProps, newState) {
console.log(
"===> TOC render shouldComponentUpdate",
newProps.data,
this.props.data
)
return false;
}
shouldComponentUpdate(newProps, newState) {
console.log(
"===> TOC render shouldComponentUpdate",
newProps.data,
this.props.data
)
if (this.props.data === newProps.data) {
return false
}
return true
}
var a = [1,2,3];
var b = Array.from(a);
a === b
---------> FALSE
Var a = {name:’Kim’}
Object.assign({},a);
var a = {name:'kim'}
var b = Object.assign({},a)
a === b
---------> false
b.name = 'lee'
"lee"
console.log(a,b)
{name: "kim"} {name: "lee"}
var b = Object.assign({left: 1, right: 2},a)
b
{left: 1, right: 2, name: "kim"}
Reference
この問題について(React_6), 我々は、より多くの情報をここで見つけました https://velog.io/@aksel26/React6-zgcumlvcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol