react 表單 雙向繫結的實現

2021-09-13 22:43:26 字數 1315 閱讀 9994

在 react 開發中,經常遇到 input 輸入框改變值的時候,要定義乙個函式,該函式內部執行 setstate 的操作,才能改變 input 的值。如果表單元素多了以後,就會定義很多的這種函式,使**變得冗餘。下面在 react 中實現乙個類似於 vue 的表單雙向繫結的邏輯。

this

.state.inputval =

"qqqq"

核心**實現如下:

import react from

"react"

;const

inputcteator

=function

(options)

= options;

const

=this

.state;

const context =

this

;// 監聽get,set方法,set時自動更新state

object.

defineproperty

(this

.state, statekey,

,set

(val));

}});

const

oninputchange

= e =>);

};const content =

(type=

"text"

value=

onchange=

name=

/>

)return content;

}export

default inputcteator;

使用如下:

import inputcteator from

"./lib/index"

;class

extends

component;}

render()

)}<

/p>

onclick=

>

qqq<

/button>

onclick=

>

eee<

/button>

<

/div>

<

/div>);

}}

這樣巧妙運用get,set方法來實現react表單雙向繫結,就會在開發者簡化很多**。

react實現雙向繫結

react沒有提供類似於angular中 ngmodel 和vue中v mode的l雙向繫結,最近在學習react,以下是我實現資料的雙向繫結的方式class textchange extends react.component textchange e render 按照以上方法就可以實現資料的雙...

React的雙向繫結

參見 以前對於雙向繫結概念來自於angular.js,現在我用我感興趣的react.js來實現這樣的方式。有2種方式分析,1 不用外掛程式,2 用外掛程式 引入react.js操作省略。先建立react元件 var nolink react.createclass react.render docu...

表單的雙向繫結

1.html表單元素是有自己預設行為的,如 和 之類的表單元素通常自己維護state,並根據使用者輸入進行更新。2.而在react中,可變狀態 mutable state 通常儲存在元件的state屬性中,並且只能通過使用setstate 來更新。稱之為受控元件,和vue的表單雙向繫結類似。1.為表...