Decoradores SwiftUI_property


@ObservableObject / @Publicado

  • @ObservedObjectEl uso de es @Statemuy similar a , por el nombre parece que se usa para modificar un objeto, y este objeto puede Viewser usado por múltiples independientes. Si usa @ObservedObjectpara modificar un objeto, entonces ese objeto debe implementar ObservableObjectel protocolo y luego usar @Publishedpara modificar las propiedades en el objeto, lo que indica que esta propiedad debe ser SwiftUImonitoreada

@EnvironmentObject

  • @EnvironmentObjectLos decoradores son para el medio ambiente global. A través de él, podemos evitar crear en el Viewmomento ObservableObject, pero obtenerlo del entorno.ObservableObject
  • @EnvironmentObjectLa forma en que funciona es que Environmentbusca la instancia requerida de

@Estado

  • Al usar @Stateel decorador podemos asociar Viewel estado del . Las propiedades SwiftUIque se han usado con @Stateel decorador en un área de memoria especial, y esta área View structestá aislada del . Cuando cambie @Statela propiedad decorada , SwiftUIse basará en el el nuevo valor de propiedad recrea la vista

  • Crear una variable con un valor inicial

@State private var isPlaying: Bool = false

@Vinculante

  • A veces, pasaremos un atributo de vista a un nodo secundario, pero no se puede pasar directamente al nodo secundario, porque el formulario de transmisión de valor Swiftes el método de transmisión de tipo de valor, es decir, el que se pasa al nodo secundario es un valor copiado. . Pero después de ser modificado por @Bindingel decorador , el atributo se convierte en un tipo de referencia y la transferencia se convierte en una transferencia de referencia, de modo que el estado de la vista padre-hijo se puede asociar
  • Al pasar atributos, use $para pasar

@Ambiente

  • A través de las propiedades @Environmentmodificadas abrimos una transformación que monitorea información a nivel de sistema, en este ejemplo una vez que Calendar, Locale, ColorSchemeocurra una transformación CalendarViewse refrescará
struct CalendarView: View {
    
    
    @Environment(\.calendar) var calendar: Calendar
    @Environment(\.locale) var locale: Locale
    @Environment(\.colorScheme) var colorScheme: ColorScheme

    var body: some View {
    
    
        return Text(locale.identifier)
    }
}

Supongo que te gusta

Origin blog.csdn.net/FlyingKuiKui/article/details/129842394
Recomendado
Clasificación