ReactJS Templates
Membangun Platform Blogging SPA dengan ReactJS dan Back4App
26 mnt
1\ pendahuluan tutorial ini akan memandu anda melalui proses membangun aplikasi halaman tunggal (spa) lengkap untuk platform blogging menggunakan reactjs sebagai frontend dan back4app sebagai backend kami akan membahas semuanya mulai dari menyiapkan lingkungan pengembangan anda, mengelola status global dengan redux, menerapkan routing dan navigasi, hingga melakukan operasi crud dengan back4app tujuan membuat platform blogging yang sepenuhnya fungsional di mana pengguna dapat membuat, mengedit, dan menghapus posting blog, dan pembaca dapat melihat dan mengomentari posting aplikasi ini akan memanfaatkan reactjs untuk frontend dan back4app untuk operasi backend fitur utama autentikasi pengguna pembuatan, pengeditan, dan penghapusan posting melihat posting dan komentar mengelola status global dengan redux routing dan navigasi menggunakan react router prasyarat pengetahuan dasar tentang javascript, reactjs, dan redux akun back4app yang aktif node js dan npm terinstal di lingkungan lokal anda 2\ pengaturan awal 2 1 menyiapkan proyek reactjs langkah 1 buat proyek react baru menggunakan create react app langkah 2 mulai server pengembangan 2 2 menyiapkan back4app langkah 1 masuk ke akun back4app anda dan buat aplikasi baru langkah 2 di dasbor back4app, navigasikan ke "core > browser" dan buat kelas berikut post (untuk menyimpan posting blog) comment (untuk menyimpan komentar pada posting) langkah 3 dapatkan id aplikasi dan kunci javascript anda dari bagian "pengaturan aplikasi > keamanan & kunci" 2 3 menginstal paket yang diperlukan instal ketergantungan yang diperlukan untuk integrasi react, redux, dan back4app npm install parse @reduxjs/toolkit react redux react router dom 2 4 mengonfigurasi parse sdk langkah 1 buat file bernama parseconfig js di folder src dan konfigurasikan parse sdk import parse from 'parse'; parse initialize("your app id", "your javascript key"); parse serverurl = 'https //parseapi back4app com/'; export default parse; 3\ pengembangan platform blogging 3 1 struktur proyek atur proyek dengan struktur berikut src/ \| components/ \| | postlist js \| | postdetails js \| | postform js \| | commentlist js \| redux/ \| | store js \| | postslice js \| | commentslice js \| parseconfig js \| app js \| index js atur proyek dengan struktur berikut 3 2 mengimplementasikan redux untuk manajemen status global langkah 1 siapkan toko redux di redux/store js import { configurestore } from '@reduxjs/toolkit'; import postreducer from ' /postslice'; import commentreducer from ' /commentslice'; export const store = configurestore({ reducer { posts postreducer, comments commentreducer, }, }); langkah 2 buat slice untuk mengelola pos di redux/postslice js import { createslice, createasyncthunk } from '@reduxjs/toolkit'; import parse from ' /parseconfig'; export const fetchposts = createasyncthunk('posts/fetchposts', async () => { const query = new parse query('post'); const results = await query find(); return results map(post => ({ id post id, title post get('title'), content post get('content'), })); }); const postslice = createslice({ name 'posts', initialstate { list \[], status null, }, reducers {}, extrareducers { \[fetchposts fulfilled] (state, action) => { state list = action payload; state status = 'success'; }, }, }); export default postslice reducer; langkah 3 buat slice untuk mengelola komentar di redux/commentslice js import { createslice, createasyncthunk } from '@reduxjs/toolkit'; import parse from ' /parseconfig'; export const fetchcomments = createasyncthunk('comments/fetchcomments', async (postid) => { const query = new parse query('comment'); query equalto('post', { type 'pointer', classname 'post', objectid postid }); const results = await query find(); return results map(comment => ({ id comment id, content comment get('content'), postid postid, })); }); const commentslice = createslice({ name 'comments', initialstate { list \[], status null, }, reducers {}, extrareducers { \[fetchcomments fulfilled] (state, action) => { state list = action payload; state status = 'success'; }, }, }); export default commentslice reducer; 3 3 mengimplementasikan routing dengan react router langkah 1 atur routing di app js import { browserrouter as router, route, switch } from 'react router dom'; import postlist from ' /components/postlist'; import postdetails from ' /components/postdetails'; import postform from ' /components/postform'; function app() { return ( \<router> \<switch> \<route path="/" exact component={postlist} /> \<route path="/post/\ id" component={postdetails} /> \<route path="/new post" component={postform} /> \</switch> \</router> ); } export default app; 3 4 membuat komponen langkah 1 buat komponen postlist untuk menampilkan semua posting blog import react, { useeffect } from 'react'; import { usedispatch, useselector } from 'react redux'; import { fetchposts } from ' /redux/postslice'; import { link } from 'react router dom'; const postlist = () => { const dispatch = usedispatch(); const posts = useselector(state => state posts list); useeffect(() => { dispatch(fetchposts()); }, \[dispatch]); return ( \<div> \<h1>blog posts\</h1> \<link to="/new post">create new post\</link> \<ul> {posts map(post => ( \<li key={post id}> \<link to={`/post/${post id}`}>{post title}\</link> \</li> ))} \</ul> \</div> ); }; export default postlist; langkah 2 buat komponen postdetails untuk menampilkan detail dari sebuah post tertentu import react, { useeffect } from 'react'; import { useparams } from 'react router dom'; import { usedispatch, useselector } from 'react redux'; import { fetchcomments } from ' /redux/commentslice'; const postdetails = () => { const { id } = useparams(); const dispatch = usedispatch(); const comments = useselector(state => state comments list); useeffect(() => { dispatch(fetchcomments(id)); }, \[dispatch, id]); return ( \<div> \<h1>post details\</h1> \<p>comments \</p> \<ul> {comments map(comment => ( \<li key={comment id}>{comment content}\</li> ))} \</ul> \</div> ); }; export default postdetails; langkah 3 buat komponen postform untuk membuat dan mengedit post import react, { usestate } from 'react'; import parse from ' /parseconfig'; import { usehistory } from 'react router dom'; const postform = () => { const \[title, settitle] = usestate(''); const \[content, setcontent] = usestate(''); const history = usehistory(); const handlesubmit = async (e) => { e preventdefault(); const post = parse object extend('post'); const post = new post(); post set('title', title); post set('content', content); try { await post save(); history push('/'); } catch (error) { console error('error creating post ', error); } }; return ( \<div> \<h1>create new post\</h1> \<form onsubmit={handlesubmit}> \<div> \<label>title\</label> \<input type="text" value={title} onchange={(e) => settitle(e target value)} /> \</div> \<div> \<label>content\</label> \<textarea value={content} onchange={(e) => setcontent(e target value)} /> \</div> \<button type="submit">submit\</button> \</form> \</div> ); }; export default postform; 4\ pengujian dan penyebaran 4 1 menguji aplikasi langkah 1 uji aplikasi secara lokal untuk memastikan bahwa semua fitur berfungsi uji membuat, mengedit, dan menghapus pos verifikasi bahwa komentar ditampilkan dengan benar untuk setiap pos uji navigasi antara rute yang berbeda 4 2 membangun aplikasi untuk produksi langkah 1 bangun aplikasi untuk produksi npm run build langkah 2 sebarkan aplikasi yang telah dibangun ke layanan hosting seperti back4app containers 4 3 mengonfigurasi back4app untuk produksi back4app sudah merupakan lingkungan yang siap untuk produksi tetapi anda dapat memeriksa kode anda dan memperbarui variabel lingkungan dan kunci yang diperlukan 5\ kesimpulan ringkasan tutorial ini membimbing anda melalui pembuatan platform blogging spa yang lengkap menggunakan reactjs dan back4app anda belajar bagaimana cara mengatur dan mengonfigurasi backend di back4app, mengelola status global dengan redux, menerapkan routing dengan react router, dan melakukan operasi crud platform ini sekarang dapat diperluas dengan fitur tambahan seperti otentikasi pengguna, sistem komentar yang lebih canggih, dan lainnya langkah selanjutnya jelajahi penambahan otentikasi pengguna dengan back4app tingkatkan sistem komentar dengan pembaruan waktu nyata terapkan fitur seo untuk meningkatkan visibilitas mesin pencari 6\ kode sumber dan sumber daya tambahan repositori github berikan tautan ke kode sumber lengkap untuk aplikasi di github sumber daya tambahan dokumentasi reactjs https //reactjs org/docs/getting started html dokumentasi redux https //redux js org/ dokumentasi react router https //reactrouter com/ dokumentasi back4app https //www back4app com/docs 7\ faq / pemecahan masalah masalah umum kesalahan menghubungkan ke back4app periksa kembali id aplikasi dan kunci javascript anda status redux tidak diperbarui pastikan tindakan dan pengurang anda dikonfigurasi dengan benar dukungan jika anda mengalami masalah, anda dapat menghubungi dukungan back4app atau mengajukan pertanyaan di komunitas pengembang yang relevan