Introducció

En aquest tema, aprendrem sobre els components i les props en React Native. Els components són els blocs de construcció fonamentals d'una aplicació React Native, mentre que les props (abreviatura de "properties") permeten passar dades als components.

Components

Tipus de Components

Hi ha dos tipus principals de components en React Native:

  1. Components de Funció (Function Components):

    • Són funcions de JavaScript que accepten un objecte de props com a argument i retornen elements de React.
    • Són més senzills i fàcils de llegir.
    • Exemple:
    import React from 'react';
    import { Text, View } from 'react-native';
    
    const Greeting = (props) => {
      return (
        <View>
          <Text>Hello, {props.name}!</Text>
        </View>
      );
    };
    
    export default Greeting;
    
  2. Components de Classe (Class Components):

    • Són classes de JavaScript que estenen React.Component i tenen un mètode render que retorna elements de React.
    • Són més potents i permeten utilitzar l'estat i els mètodes del cicle de vida.
    • Exemple:
    import React, { Component } from 'react';
    import { Text, View } from 'react-native';
    
    class Greeting extends Component {
      render() {
        return (
          <View>
            <Text>Hello, {this.props.name}!</Text>
          </View>
        );
      }
    }
    
    export default Greeting;
    

Creació d'un Component

Per crear un component, simplement defineix una funció o una classe que retorni elements de React. Aquests elements poden ser altres components o components bàsics com Text, View, Image, etc.

Props

Què són les Props?

Les props són un mecanisme per passar dades dels components pares als components fills. Són immutables, és a dir, no es poden modificar dins del component fill.

Passar Props

Per passar props a un component, simplement afegeix atributs al component quan el crides. Exemple:

import React from 'react';
import { View } from 'react-native';
import Greeting from './Greeting';

const App = () => {
  return (
    <View>
      <Greeting name="John" />
      <Greeting name="Jane" />
    </View>
  );
};

export default App;

En aquest exemple, estem passant la prop name als components Greeting.

Accedir a les Props

Per accedir a les props dins d'un component de funció, utilitza l'argument props. En un component de classe, utilitza this.props.

PropTypes

És una bona pràctica definir els tipus de les props que un component espera rebre. Això es pot fer utilitzant la biblioteca prop-types.

import React from 'react';
import PropTypes from 'prop-types';
import { Text, View } from 'react-native';

const Greeting = (props) => {
  return (
    <View>
      <Text>Hello, {props.name}!</Text>
    </View>
  );
};

Greeting.propTypes = {
  name: PropTypes.string.isRequired,
};

export default Greeting;

Exercicis Pràctics

Exercici 1: Crear un Component de Funció

Crea un component de funció anomenat Welcome que accepti una prop username i mostri un missatge de benvinguda.

import React from 'react';
import { Text, View } from 'react-native';

const Welcome = (props) => {
  return (
    <View>
      <Text>Welcome, {props.username}!</Text>
    </View>
  );
};

export default Welcome;

Exercici 2: Crear un Component de Classe

Crea un component de classe anomenat UserProfile que accepti una prop user (un objecte amb name i age) i mostri la informació de l'usuari.

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class UserProfile extends Component {
  render() {
    return (
      <View>
        <Text>Name: {this.props.user.name}</Text>
        <Text>Age: {this.props.user.age}</Text>
      </View>
    );
  }
}

export default UserProfile;

Solucions

Solució Exercici 1

import React from 'react';
import { Text, View } from 'react-native';

const Welcome = (props) => {
  return (
    <View>
      <Text>Welcome, {props.username}!</Text>
    </View>
  );
};

export default Welcome;

Solució Exercici 2

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class UserProfile extends Component {
  render() {
    return (
      <View>
        <Text>Name: {this.props.user.name}</Text>
        <Text>Age: {this.props.user.age}</Text>
      </View>
    );
  }
}

export default UserProfile;

Conclusió

En aquest tema, hem après sobre els components i les props en React Native. Hem vist com crear components de funció i de classe, com passar i accedir a les props, i com utilitzar PropTypes per definir els tipus de les props. Aquests conceptes són fonamentals per construir aplicacions React Native eficients i ben estructurades. En el següent mòdul, explorarem els components bàsics i la seva estilització.

© Copyright 2024. Tots els drets reservats