亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談React雙向數(shù)據(jù)綁定原理

 更新時(shí)間:2021年11月12日 15:16:33   作者:Mrqin-shen  
在 React中是不存在雙向數(shù)據(jù)綁定的機(jī)制的,需要我們自己對(duì)其進(jìn)行實(shí)現(xiàn)。本文主要介紹一下React雙向數(shù)據(jù)綁定,感興趣的可以了解一下

如果已經(jīng)學(xué)過(guò)Vue,并且深入了解過(guò)Vue的雙向數(shù)據(jù)綁定的話,就會(huì)明白 Vue 2.0 雙向數(shù)據(jù)綁定的核心其實(shí)是通過(guò)Object.defineProperty來(lái)實(shí)現(xiàn)數(shù)據(jù)劫持和監(jiān)聽(tīng)。

Vue 3.0 中則通過(guò) Proxy來(lái)實(shí)現(xiàn)對(duì)整體對(duì)象的監(jiān)聽(tīng),對(duì) Vue2.0 的優(yōu)化。

什么是雙向數(shù)據(jù)綁定

數(shù)據(jù)模型和視圖之間的雙向綁定。

當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候,視圖也就發(fā)生變化,當(dāng)視圖發(fā)生變化的時(shí)候,數(shù)據(jù)也會(huì)跟著同步變化;可以這樣說(shuō)用戶在視圖上的修改會(huì)自動(dòng)同步到數(shù)據(jù)模型中去,數(shù)據(jù)模型也是同樣的變化。

雙向數(shù)據(jù)綁定的優(yōu)點(diǎn):無(wú)需和單向數(shù)據(jù)綁定那樣進(jìn)行CRUD(Create,Retrieve,Update,Delete)操作,雙向數(shù)據(jù)綁定最常應(yīng)用在就表單上,這樣當(dāng)用戶在前端頁(yè)面完成輸入后,不用任何操作,我們就已經(jīng)拿到了用戶輸入好的數(shù)據(jù),并放到數(shù)據(jù)模型中了。

實(shí)現(xiàn)雙向數(shù)據(jù)綁定

但是,在 React中是不存在雙向數(shù)據(jù)綁定的機(jī)制的,需要我們自己對(duì)其進(jìn)行實(shí)現(xiàn)。

數(shù)據(jù)影響視圖

這種功能實(shí)際上,React 已經(jīng)幫助我們實(shí)現(xiàn)了,使用 setState({ }) 方法修改數(shù)據(jù)。
React內(nèi)部提供的修改方法),不允許通過(guò)this.state.屬性名 = 數(shù)據(jù) 的方法進(jìn)行數(shù)據(jù)修改。

代碼

import React, { Component } from 'react';
// 引入 antd UI庫(kù)
import { Button } from 'antd';  
class Home extends Component {
    constructor(props) {
        super(props);
        this.state = { 
            inputVal:'',
         };
    }   
    setValue=()=>{
        this.setState({
            inputVal:"修改 Value"
        })
    }
    render() {
        return (
            <div className="home" >
                Home組件
                <p> {this.state.inputVal}</p>
                 {/* 使用了 antd UI庫(kù) */}
                <Button type="primary" onClick={this.setValue}>修改數(shù)據(jù)</Button>
            </div>
        );
    }
}
export default Home;

效果

在這里插入圖片描述 

視圖影響數(shù)據(jù)

通過(guò) React 提供的 onChage 監(jiān)聽(tīng)事件 實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)錄入
同時(shí),使用 value 或者 defaultValueinput 框中呈現(xiàn)內(nèi)容
為了方便顯示,這里使用了 p 標(biāo)簽來(lái)顯示內(nèi)容

代碼

import React, { Component } from 'react';
import { Button } from 'antd'; // antd UI庫(kù)
class Home extends Component {
    constructor(props) {
        super(props);
        this.state = { 
            inputVal:'',
         };

    }    
    change = (ev)=>{
        this.setState({
            inputVal:ev.target.value
        })
    }
    render() {
        return (
            <div className="home" >
                Home組件
				<input 
                    onChange={this.change}
                    // value={this.state.inputVal}
                    defaultValue={this.state.inputVal}
                    placeholder="輸入文本內(nèi)容"
                 />
                <p>&emsp;{this.state.inputVal}</p>
            </div>
        );
    }
}
export default Home;

效果

在這里插入圖片描述 

注意:

使用 value 綁定時(shí),valuedefaultValue 只能使用一個(gè),否則會(huì)報(bào)警告

到此這篇關(guān)于淺談React雙向數(shù)據(jù)綁定原理的文章就介紹到這了,更多相關(guān)React雙向綁定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react-router-domV6版本的路由和嵌套路由寫(xiě)法詳解

    react-router-domV6版本的路由和嵌套路由寫(xiě)法詳解

    本文主要介紹了react-router-domV6版本的路由和嵌套路由寫(xiě)法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • react-diagram 序列化Json解讀案例分析

    react-diagram 序列化Json解讀案例分析

    今天帶來(lái)大家學(xué)習(xí)react-diagram 序列化Json解讀的相關(guān)知識(shí),本文通過(guò)多種案例給大家分析序列化知識(shí),通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2021-05-05
  • react?hooks中的useState使用要點(diǎn)

    react?hooks中的useState使用要點(diǎn)

    這篇文章主要為大家介紹了react?hooks中的useState使用要點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 在React框架中實(shí)現(xiàn)一些AngularJS中ng指令的例子

    在React框架中實(shí)現(xiàn)一些AngularJS中ng指令的例子

    這篇文章主要介紹了在JavaScript的React框架中實(shí)現(xiàn)一些AngularJS指令的例子,React使用Virtual DOM因而與普通的js框架有些不同,需要的朋友可以參考下
    2016-03-03
  • 基于PixiJS實(shí)現(xiàn)react圖標(biāo)旋轉(zhuǎn)動(dòng)效

    基于PixiJS實(shí)現(xiàn)react圖標(biāo)旋轉(zhuǎn)動(dòng)效

    PixiJS是一個(gè)開(kāi)源的基于web的渲染系統(tǒng),為游戲、數(shù)據(jù)可視化和其他圖形密集型項(xiàng)目提供了極快的性能,這篇文章主要介紹了用PixiJS實(shí)現(xiàn)react圖標(biāo)旋轉(zhuǎn)動(dòng)效,需要的朋友可以參考下
    2022-05-05
  • 詳解React Native頂|底部導(dǎo)航使用小技巧

    詳解React Native頂|底部導(dǎo)航使用小技巧

    本篇文章主要介紹了詳解React Native頂|底部導(dǎo)航使用小技巧 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • react-router browserHistory刷新頁(yè)面404問(wèn)題解決方法

    react-router browserHistory刷新頁(yè)面404問(wèn)題解決方法

    本篇文章主要介紹了react-router browserHistory刷新頁(yè)面404問(wèn)題解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-12-12
  • React中props使用教程

    React中props使用教程

    props是組件(包括函數(shù)組件和class組件)間的內(nèi)置屬性,用其可以傳遞數(shù)據(jù)給子節(jié)點(diǎn),props用來(lái)傳遞參數(shù)。組件實(shí)例化過(guò)程中,你可以向其中傳遞一個(gè)參數(shù),這個(gè)參數(shù)會(huì)在實(shí)例化過(guò)程中被引用
    2022-09-09
  • React虛擬列表的實(shí)現(xiàn)代碼

    React虛擬列表的實(shí)現(xiàn)代碼

    最近看了vueuse的useVirtualList的實(shí)現(xiàn)方式,發(fā)現(xiàn)虛擬滾動(dòng)效果不錯(cuò),就嘗試著同樣的寫(xiě)法改成react版本,虛擬列表主要包含三部分組成,offset,viewcapacity,overscan,本文就給大家介紹一下React虛擬列表的實(shí)現(xiàn),需要的朋友可以參考下
    2023-08-08
  • React開(kāi)啟代理的2種實(shí)用方式

    React開(kāi)啟代理的2種實(shí)用方式

    最近有不少伙伴詢問(wèn)react的代理配置,自己也去試驗(yàn)了一下發(fā)現(xiàn)不少的問(wèn)題,在這就將所遇到的心得分享出來(lái),這篇文章主要給大家介紹了關(guān)于React開(kāi)啟代理的2種實(shí)用方式的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評(píng)論