[[oktatas:telefon:react_native|< React Native]]
====== Komponensek külön fájlban ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2021, 2023
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Rövidítés =====
Visual Studio Code rövidítés:
rfced
import React from 'react'
export default function Valami(props) {
return (
<>
>
)
}
A függvény neve automatikusan felveszi a fájl nevét.
===== Komponens külön =====
==== Külön fájl ====
Készítsünk a projekt gyökér könyvtárában egy components nevű könyvtárat.
Itt fogjuk elhelyezni a komponenseinket.
==== App.js ====
import React, { Component} from 'react';
import { View, StyleSheet, Button, Text } from 'react-native';
import Head from './components/head';
import Body from './components/body';
import Foot from './components/foot';
export default class App extends Component {
render() {
return (
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'skyblue',
alignItems: 'center',
justifyContent: 'center',
},
});
==== Komponensek ====
import React, { Component} from 'react';
import { View, StyleSheet, Text } from 'react-native';
export default class ComponentA extends Component {
render() {
return (
Fejrész
);
}
}
const styles = StyleSheet.create({
container: {
padding: 20,
backgroundColor: 'orange',
alignItems: 'center',
justifyContent: 'center',
width: '100%'
},
});
import React, { Component} from 'react';
import { View, StyleSheet, Text } from 'react-native';
export default class ComponentB extends Component {
render() {
return (
Törzs
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
width: '100%',
},
});
import React, { Component} from 'react';
import { View, StyleSheet, Text } from 'react-native';
export default class ComponentC extends Component {
render() {
return (
Lábrész
);
}
}
const styles = StyleSheet.create({
container: {
height: 40,
backgroundColor: 'green',
alignItems: 'center',
justifyContent: 'center',
width: '100%',
},
});
===== Gomb külön =====
Saját nyomógomb forráskódja:
import React from 'react';
import { Text, View, TouchableHighlight } from 'react-native';
import styles from './Button.style';
export default ({title, onPress}) => {
return (
{title}
);
}
A hozzátartozó stílus:
import { StyleSheet } from 'react-native';
export default StyleSheet.create({
container: {
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
runButton: {
backgroundColor: 'blue',
margin: 5,
padding: 10,
borderRadius: 3,
},
runText: {
color: 'white',
paddingLeft: 10,
paddingRight: 10,
fontSize: 32,
}
});
Felhasználás:
//...
import Button from './components/Button';
//...
function handlePress() {
//tevékenység
}
//...