バインドとは?( Feat . this )
4953 ワード
JavaScriptでのこのメソッド
バインディングを理解するには、まずJavaScriptの「this」メソッドを理解する必要があります.
そこで,反応のバインディングを知る前に,JavaScriptを用いたこの方法によるバインディングについて理解する. let A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
A.sayHello(); //"Hello"
JavaScriptでは、オブジェクト内のメソッドthisは、このメソッドを含むオブジェクトを指します.上記の例では、sayHelloメソッドのthisがaのオブジェクトとなり、a.prop helloがコンソール出力helloに渡される.
つまり、これはAが、AのアイテムHello出力を受け取ることを意味する.ここまでは非常に基本的なthisの使い方です.では、次の例を見てみましょう.let A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
let B = A.sayHello();
console.log(B); // undefined
今回AのsayHello()をBという変数に入れて出力することでundefinedを決定することができる.
これは,変数BにA.sayHelloが含まれている場合,sayHello()とAとの関係が失われるためである.
この場合に必要なのが「データバインド」です.
JavaScriptのバインド
バインドは「バインド」の辞書の意味で、符号化されたバインドは、2つのデータまたは情報のソースをマッチングすることを意味します.すなわち,画面上のデータをブラウザメモリ内のデータ(複数のJavaScriptオブジェクト)と一致させる.Aとの関係が切れて悲しい私たちsayHello()をつなげましょうlet A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
let B = A.sayHello.bind(A);
console.log(B); // Hello
バインドの方法は簡単です.
A.sayHello()を伝えるときA.sayHellobind(A)のように、Aにバインドして送信すればよい.
これまでthisメソッドを用いたJavaScriptでのバインドについて理解してきた.ただしreact内でバインドする方法とJavaScript内でバインドする方法は若干異なります.いくつかの方法がありますが、Reactでのバインドは、主にイベントメソッドをコンポーネントに関連付けるために使用されます.以下の例を見てみましょう.
レスポンスバインディング class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
}
handleClick() {
this.setState({
message: 'Goodbye!' // 클릭하면 Goodbye 바뀌는 함수
})
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button onClick={this.handleClick}>Click</button>
</div> // 온클릭 이벤트와 함수 연결
)
}
}
上の例は、ボタンをクリックしてHelloをGoodbyeにする例で、エラーの原因となるコードです.バインドされていないため、ボタンを押すと未定義エラーのCannot read属性「setState」が発生します.では、次のようにバインドします.class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
this.handleClick = this.handleClick.bind(this); // 바인딩!!!!!!!!!!!
}
handleClick() {
this.setState({
message: 'Goodbye!'
})
console.log(this) // EventBind
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button
onClick={this.handleClick}> // 이벤트와 함수 연결
Click
</button>
</div>
)
}
}
コンストラクション関数()でこの操作を実行します.update = this.update.bind(this); 文を挿入してバインドすると、render()でonClick={this.update}を行うと、thisは適用コンポーネントのthisであることがわかります.
それ以外に、reactバインディングメソッドでは、ES 2015が提供する機能arrow関数をバインディングに使用することができ、onClickButtonメソッドを「()=>」arrow関数に設定するだけでよい.
Reference
この問題について(バインドとは?( Feat . this )), 我々は、より多くの情報をここで見つけました
https://velog.io/@zinukk/바인딩
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
let A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
A.sayHello(); //"Hello"
let A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
let B = A.sayHello();
console.log(B); // undefined
バインドは「バインド」の辞書の意味で、符号化されたバインドは、2つのデータまたは情報のソースをマッチングすることを意味します.すなわち,画面上のデータをブラウザメモリ内のデータ(複数のJavaScriptオブジェクト)と一致させる.Aとの関係が切れて悲しい私たちsayHello()をつなげましょう
let A = {
prop: 'Hello',
sayHello: function() {
console.log( this.prop );
}
};
let B = A.sayHello.bind(A);
console.log(B); // Hello
バインドの方法は簡単です.A.sayHello()を伝えるときA.sayHellobind(A)のように、Aにバインドして送信すればよい.
これまでthisメソッドを用いたJavaScriptでのバインドについて理解してきた.ただしreact内でバインドする方法とJavaScript内でバインドする方法は若干異なります.いくつかの方法がありますが、Reactでのバインドは、主にイベントメソッドをコンポーネントに関連付けるために使用されます.以下の例を見てみましょう.
レスポンスバインディング class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
}
handleClick() {
this.setState({
message: 'Goodbye!' // 클릭하면 Goodbye 바뀌는 함수
})
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button onClick={this.handleClick}>Click</button>
</div> // 온클릭 이벤트와 함수 연결
)
}
}
上の例は、ボタンをクリックしてHelloをGoodbyeにする例で、エラーの原因となるコードです.バインドされていないため、ボタンを押すと未定義エラーのCannot read属性「setState」が発生します.では、次のようにバインドします.class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
this.handleClick = this.handleClick.bind(this); // 바인딩!!!!!!!!!!!
}
handleClick() {
this.setState({
message: 'Goodbye!'
})
console.log(this) // EventBind
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button
onClick={this.handleClick}> // 이벤트와 함수 연결
Click
</button>
</div>
)
}
}
コンストラクション関数()でこの操作を実行します.update = this.update.bind(this); 文を挿入してバインドすると、render()でonClick={this.update}を行うと、thisは適用コンポーネントのthisであることがわかります.
それ以外に、reactバインディングメソッドでは、ES 2015が提供する機能arrow関数をバインディングに使用することができ、onClickButtonメソッドを「()=>」arrow関数に設定するだけでよい.
Reference
この問題について(バインドとは?( Feat . this )), 我々は、より多くの情報をここで見つけました
https://velog.io/@zinukk/바인딩
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
}
handleClick() {
this.setState({
message: 'Goodbye!' // 클릭하면 Goodbye 바뀌는 함수
})
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button onClick={this.handleClick}>Click</button>
</div> // 온클릭 이벤트와 함수 연결
)
}
}
class EventBind extends Component {
constructor(props) {
super(props)
this.state = {
message: 'Hello'
}
this.handleClick = this.handleClick.bind(this); // 바인딩!!!!!!!!!!!
}
handleClick() {
this.setState({
message: 'Goodbye!'
})
console.log(this) // EventBind
}
render() {
return (
<div>
<div>{this.state.message}</div>
<button
onClick={this.handleClick}> // 이벤트와 함수 연결
Click
</button>
</div>
)
}
}
Reference
この問題について(バインドとは?( Feat . this )), 我々は、より多くの情報をここで見つけました https://velog.io/@zinukk/바인딩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol