在 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.為表...