欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SwiftUI學(xué)習(xí)之state和Binding的區(qū)別淺析

 更新時(shí)間:2021年03月28日 15:35:29   作者:樹下  
這篇文章主要給大家介紹了關(guān)于SwiftUI學(xué)習(xí)之state和Binding區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

@state 綁定值的狀態(tài),其屬性的修飾官方推薦使用private.上代碼(ps:這里沒用private 進(jìn)行修飾,是為了演示區(qū)別)
import SwiftUI

struct FilterView: View {
// @Binding var isFavorite: Bool
 @State var isFavorite = true
 
 var body: some View {
  Toggle(isOn: $isFavorite) {
   
  }
  let buttonTitle = isFavorite ? "嘔吼" : "頓頓"
  Text(buttonTitle)
  
 }
}
struct ProductView: View {
 var titleS: String
 
 //:不想讓外部訪問的變量 需要初始化
 @State private var changeButtonTtile = true
 var body: some View {
  Button (action: {
   changeButtonTtile.toggle()
  }) {
   let buttonTitle = changeButtonTtile ? "哈哈哈" : "啦啦啦啦"
   Text(buttonTitle)
   FilterView(isFavorite: changeButtonTtile)

  }
 }
}

這里我們看到 @State  var isFavorite = true通過(guò)state 進(jìn)行修飾.這個(gè)時(shí)候我們點(diǎn)擊FilterView的開關(guān) 我們只能刷新當(dāng)前FilterView的界面.注意這里:FilterView(isFavorite: changeButtonTtile) 初始化傳入的是changeButtonTtile的value,也就實(shí)際值.

下面我們把State注釋掉 ,打開@Bingding 那一行

import SwiftUI

struct FilterView: View {
 @Binding var isFavorite: Bool
// @State var isFavorite = true
 
 var body: some View {
  Toggle(isOn: $isFavorite) {
   
  }
  let buttonTitle = isFavorite ? "嘔吼" : "頓頓"
  Text(buttonTitle)
  
 }
}
struct ProductView: View {
 var titleS: String
 
 //:不想讓外部訪問的變量 需要初始化
 @State private var changeButtonTtile = true
 var body: some View {
  Button (action: {
   changeButtonTtile.toggle()
  }) {
   let buttonTitle = changeButtonTtile ? "哈哈哈" : "啦啦啦啦"
   Text(buttonTitle)
   FilterView(isFavorite: $changeButtonTtile)
//:注意這里的取值 變成了$
  }
 }
}

這里我們運(yùn)行代碼,點(diǎn)擊開關(guān),你發(fā)現(xiàn)了什么??.ProductView 的UI 也發(fā)生了變化.這個(gè)時(shí)候FilterView 傳入的是changeBtnTitle的引用,而不是值.這樣你在子視圖改變@Binding修飾的值,父視圖也會(huì)跟著刷新.

使用小結(jié)

  • 當(dāng)自定義視圖的數(shù)據(jù)需要外部傳入的時(shí)候, 使用普通的屬性
  • 當(dāng)自定義的視圖需要通過(guò)數(shù)據(jù)變化更新視圖時(shí), 對(duì)普通屬性加上@State修飾
  • 當(dāng)自定義的視圖需要將視圖的變化表現(xiàn)在數(shù)據(jù)的變化時(shí),對(duì)普通屬性加上@Binding修飾, @Binding 包含了@State的功能, 但一般不會(huì)去對(duì)@Binding屬性做修改

總結(jié)

到此這篇關(guān)于SwiftUI學(xué)習(xí)之state和Binding區(qū)別的文章就介紹到這了,更多相關(guān)SwiftUI state和Binding區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot3.0集成Redis緩存的實(shí)現(xiàn)示例

    SpringBoot3.0集成Redis緩存的實(shí)現(xiàn)示例

    緩存就是一個(gè)存儲(chǔ)器,常用 Redis作為緩存數(shù)據(jù)庫(kù),本文主要介紹了SpringBoot3.0集成Redis緩存的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式

    在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式

    這篇文章主要介紹了在SpringBoot中實(shí)現(xiàn)適配器模式的兩種方式,通過(guò)實(shí)現(xiàn)類定義類型字段實(shí)現(xiàn)和以動(dòng)態(tài)service名稱的方式實(shí)現(xiàn),并且通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • Swift 3.0基礎(chǔ)學(xué)習(xí)之下標(biāo)

    Swift 3.0基礎(chǔ)學(xué)習(xí)之下標(biāo)

    這篇文章主要介紹了Swift 3.0基礎(chǔ)學(xué)習(xí)之下標(biāo)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用swift具有一定的參考價(jià)值,需要的朋友下面來(lái)一起看看吧。
    2017-03-03
  • Swift 4最全的新特性詳細(xì)解析(推薦)

    Swift 4最全的新特性詳細(xì)解析(推薦)

    Swift 4 在 Swift 3 的基礎(chǔ)上,提供了更強(qiáng)大的穩(wěn)健性和穩(wěn)定性。所以下面這篇文章就來(lái)給大家總結(jié)介紹關(guān)于Swift4新特性的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-11-11
  • Swift4使用GCD實(shí)現(xiàn)計(jì)時(shí)器

    Swift4使用GCD實(shí)現(xiàn)計(jì)時(shí)器

    這篇文章主要為大家詳細(xì)介紹了Swift4使用GCD實(shí)現(xiàn)計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Swift TableView實(shí)現(xiàn)凍結(jié)窗格功能

    Swift TableView實(shí)現(xiàn)凍結(jié)窗格功能

    這篇文章主要為大家詳細(xì)介紹了Swift TableView實(shí)現(xiàn)凍結(jié)窗格功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Swift使用表格組件實(shí)現(xiàn)單列表

    Swift使用表格組件實(shí)現(xiàn)單列表

    這篇文章主要為大家詳細(xì)介紹了Swift使用表格組件實(shí)現(xiàn)單列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift編程中的初始化與反初始化完全講解

    Swift編程中的初始化與反初始化完全講解

    這篇文章主要介紹了Swift編程中的初始化與反初始化完全講解,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • Swift開發(fā)應(yīng)用中如何更方便地使用顏色詳解

    Swift開發(fā)應(yīng)用中如何更方便地使用顏色詳解

    這篇文章主要給大家介紹了關(guān)于Swift開發(fā)應(yīng)用中如何更方便地使用顏色的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • 詳解Swift編程中下標(biāo)的用法

    詳解Swift編程中下標(biāo)的用法

    這篇文章主要介紹了Swift編程中下標(biāo)的用法,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11

最新評(píng)論