Tutorial Belajar Reactjs #5: Mengenal State dan Event Pada Reactjs
Materi pada Tutorial kali ini merupakan materi lanjutan dari tutotial sebelumnya tentang , Tutorial Belajar Reactjs #4: Mengenal Props dan Styling Pada Component Reactjs. Untuk mempermudah memahami materi pada tutorial part05 ini , ada baik nya membaca tutorial sebelumnya
pada materi Tutorial Belajar Reactjs #5: Mengenal State dan Event Pada Reactjs, ini kita akan membahas dan mempelajari apa itu State pada react-js dan cara memberi event pada react js.
langsung daja silahkkan buka folder project tutorial prat sebelumnya, dan kode editor kalian, lalu buat folder baru ,dan beri nama misal tutorial part 5 State dan Event pada react js. sebelum lanjut ke pengkodingan, saya akan coba menjelaskan sedikit apa itu state dan event pada react js.
#Penjelasan Singkat
- Apa itu State...?
this.state = {
nama: '',
hobi: ''
}
State adalah data private dari sebuah component, state ini hanya dapat di gunakan oleh component itu sendiri, dalam kata lain state ini tidak dapat di panggil oleh component lain, berbeda dangan props yang dapat di panggil, dan di gunakan oleh component lain, state ini hanya bisa diginakan dalam satau component yang memiliki state tersebut, dan dapat di gunakan untuk merubah dirinya sendiri,
contoh kasus, kita memiliki component A , yang mana pada component ini memiliki sebuah state berupa nama, nilai atau value dari state nama ini hanya dapat di ubah oleh component A sendiri, namu state ini juga memiliki kekurangan, ya itu apa bila terjadi refresh halaman pada component A maka, nilai dari state tersebut akan hilang, atau kembali ke nilai default dari state nya.
sedangkan Event Merupakan sebuah funsi atau aksi yang kita gunakan untuk merupah data atau value dari sebuah state, untuk lebih jelasnya langsung kita peraktekan saja
1.Buat file Index.html baru
kita akan coba memperaktek kan contoh kasus di atas, buat sebuah sturuktur dasar component , dan beri nama misal component profile disini kita menggunakan class component. sperti code di bawah ini.
Profile Component
class Profile extends React.Component {
constructor(props) {
super(props);
this.state = {
nama: 'Maulana',
hobi: 'Programing',
}
//deklarasi fungsi
this.handleOnClick = this.handleOnClick.bind(this);
}
handleOnClick(event) {
alert('Nama : ' + this.state.nama + '\n Hobi :' +this.state.hobi);
);
}
render() {
return(
<div>
<h3 className="form-titel">Mengenal State Dan Event React Js</h3><hr/>
<form >
<div className="form-body" >
<div className="form-titel"><h2>Form Profile</h2></div>
<input type="text"
name="nama"
placeholder="Masukan Nama.." />
<input type="text"
name="hobi"
placeholder="Masukan Hobi.." />
<button className="btn" type="button" onClick={this.handleOnClick}>Submit</button>
</div>
</form>
</div>
)
}
.form-body {
margin: auto;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
transition: 0.3s;
padding: 20px;
width: fit-content;
}
.form-titel {
text-align: center;
font-size: 15px;
font-style: bold;
font-family: Arial, Helvetica, sans-serif;
}
input[type=text],
select {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.btn {
width: 100%;
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
untuk keseluruhan koding dari file index.html kita saat ini seperti berikut ini
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./style.css">
<!-- REACT LIBRARY-->
<script src="https://unpkg.com/react@15.5.4/dist/react.js"></script>
<!-- REACT DOM LIBRARY-->
<script src="https://unpkg.com/react-dom@15.5.4/dist/react-dom.js"></script>
<!--BABEL LIBRARY-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script>
<title>Belajar React part04</title>
</head>
<body>
<div id="app">Isi konten rout react JS</div>
<script type="text/babel">
class Profile extends React.Component {
constructor(props) {
super(props);
this.state = {
nama: '',
hobi: '',
}
//deklarasi Event
this.handleOnClick = this.handleOnClick.bind(this);
}
handleOnClick(event) {
alert('Nama : ' + this.state.nama + '\n Hobi :' +this.state.hobi);
}
render() {
return(
<div>
<h3 className="form-titel">Mengenal State Dan Event React Js</h3><hr/>
<form >
<div className="form-body" >
<div className="form-titel"><h2>Form Profile</h2></div>
<input type="text" name="nama"
onChange={this.handleChange}
placeholder="Masukan Nama.." />
<input type="text"
name="hobi"
onChange={this.handleChange}
placeholder="Masukan Hobi.." />
<button className="btn" type="button" onClick={this.handleOnClick}>Submit</button>
</div>
</form>
</div>
)
}
}
ReactDOM.render(
<div>
<Profile/>
</div>, document.getElementById("app") );
</script>
</body>
</html>
lalu coba jalankan maka hasil nya seperti gambar di bawah ini...
Pada Profile Component
- line 4 - 7 kita medeklarasikan sebuah state
- line 10 kita medeklarasikan Event untuk merubah State
- line 14-17 kita membuat sebuah fungsi yang bernama handleClick, yang mana dalam fungsi ini terdapat perintah menampilkan Alert Yang berisi value dari state yang telah kita buat
- line 38, kita memberikan Event pada button Sumbit, yang mana event ini memanggil fungsi dari handleOnClick yang telah kita buat.
ketika button Submit di click maka akan menampilkan alert yang berisi text Nama dan Hobi. seperti gambar Hasil Runing Di atas.
2. Tambahkan fungsi baru
//deklarasi fungsi
this.handleChange = this.handleChange.bind(this);
}
//fungsi Evnt
handleChange(event) {
console.log('value',event.target.value);
}
<input type="text" name="nama"
onChange={this.handleChange}
placeholder="Masukan Nama.." />
<input type="text"
name="hobi"
onChange={this.handleChange}
placeholder="Masukan Hobi.." />
lalu untuk mengambil nilai atau value yang di input pada input text nya kita perlu melakukan perubahan pada fungsi hendleChange nya seperti berikut..
handleChange(event) {
const input = event.target.name;
const value = event.target.value;
if (input === 'nama'){
this.setState({
nama: value
})
console.log(input + ': '+ value)
}else{
this.setState({
hobi: value
})
console.log(input + ': '+ value)
}
}
- pada Line 2 , kita membuat sebuah variabel yang mana , variabel ini merupakan sebuah callback dari event onChange nya, dengan perintah event,target.name ini berarti kita mencari tag input dengan name apa yang sedang di isi,
- pada line 3, kita mengambil value dari tag input nya dengan perintah event,target.value . lalu kita filter berdasarkan nama dari tag input nya
- pada line 5-7 dan 10-12 , kita melakukan perubahan atau mengeset nilai state yang kita miliki
<input type="text" name="nama"
onChange={this.handleChange}
value={this.state.nama}
placeholder="Masukan Nama.." />
<input type="text"
name="hobi"
onChange={this.handleChange}
value={this.state.hobi}
placeholder="Masukan Hobi.." />
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./style.css">
<!-- REACT LIBRARY-->
<script src="https://unpkg.com/react@15.5.4/dist/react.js"></script>
<!-- REACT DOM LIBRARY-->
<script src="https://unpkg.com/react-dom@15.5.4/dist/react-dom.js"></script>
<!--BABEL LIBRARY-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.25.0/babel.min.js"></script>
<title>Belajar React part04</title>
</head>
<body>
<div id="app">Isi konten rout react JS</div>
<script type="text/babel">
class Profile extends React.Component {
constructor(props) {
super(props);
this.state = {
nama: '',
hobi: '',
}
//deklarasi Event
this.handleChange = this.handleChange.bind(this);
this.handleOnClick = this.handleOnClick.bind(this);
}
handleOnClick(event) {
alert('Nama : ' + this.state.nama + '\n Hobi :' +this.state.hobi);
}
handleChange(event) {
const input = event.target.name;
const value = event.target.value;
if (input === 'nama'){
this.setState({
nama: value
})
console.log(input + ': '+ value)
}else{
this.setState({
hobi: value
})
console.log(input + ': '+ value)
}
render() {
return(
<div>
<h3 className="form-titel">Mengenal State Dan Event React Js</h3><hr/>
<form >
<div className="form-body" >
<div className="form-titel"><h2>Form Profile</h2></div>
<input type="text" name="nama"
onChange={this.handleChange}
value={this.state.nama}
placeholder="Masukan Nama.." />
<input type="text"
name="hobi"
onChange={this.handleChange}
value={this.state.hobi}
placeholder="Masukan Hobi.." />
<button className="btn" type="button" onClick={this.handleOnClick}>Submit</button>
</div>
</form>
</div>
)
}
}
ReactDOM.render(
<div>
<Profile/>
</div>, document.getElementById("app") );
</script>
</body>
</html>
Entry Form |
Saat button Submit Di klik |
- Belajar ReactJs
- Tutorial ReactJs
- Belajar ReactJs Untuk Pemula
- Tutorial ReactJs Untuk Pemula
- Jenis Component pada React JS
- Class Component Pada Reactjs
- Cara menggunakan Class Component Pada Reactjs
- Cara memberi style pada component react js
- State Pada Component React Js
- Event pada Component React Js
- SetState di Reactjs
0 Response to "Tutorial Belajar Reactjs #5: Mengenal State dan Event Pada Reactjs"
Posting Komentar