Dalam artikel ini, Anda akan mempelajari cara membuat situs web Vue yang akan menampilkan acara yang diselenggarakan oleh suatu organisasi. Pengguna akan masuk untuk melihat laman detail acara, jadi Anda juga akan menambahkan autentikasi ke situs web. Anda akan mempelajari beberapa latar belakang Vue, struktur aplikasi Vue, membuat komponen, mengatur perutean, dan menata gaya dengan Bulma Show
Anda dapat menemukan kode terakhir di repositori GitHub ini jika Anda ingin melihat hasil akhirnya sekarang ❗ Jika Anda sudah memiliki aplikasi Vue dan hanya ingin menambahkan autentikasi, untuk mempelajari caranya
PersyaratanAplikasi ini menggunakan versi terbaru (pada saat penulisan — 8/8/2020) berikut ini
Anda dapat mengunduh Node. js di sini, yang secara otomatis menginstal npm, manajer paket Node, juga Npm memungkinkan Anda menginstal jutaan pustaka dengan cepat dan dengan mudah mengelola semua dependensi yang Anda miliki di aplikasi Anda. Anda akan melihat betapa bermanfaatnya ini segera Tutorial ini akan memandu Anda melalui cara membuat semuanya dari awal, jadi Anda tidak perlu memiliki pengetahuan sebelumnya tentang Vue atau Node untuk mengikutinya. Namun, Anda memerlukan editor kode (VS Code adalah favorit saya) dan akses ke terminal untuk mengikuti tutorial ini Mari kita mulai Mengapa Belajar Vue?Vue sejarah dan popularitasMelihat. js adalah framework JavaScript yang dibuat oleh Evan You yang popularitasnya meledak selama beberapa tahun terakhir Sumber. 2018 State of JS Survey Minat Vue. js meningkat hampir tiga kali lipat dari 2016 ke 2018 dengan peningkatan pada mereka yang tertarik untuk mempelajarinya dan mereka yang akan menggunakannya lagi Sumber. Survei JS 2018 Pada tahun 2018, mayoritas orang yang disurvei pernah mendengar tentang Vue. js dan ingin mempelajarinya atau sudah menggunakannya dan akan menggunakannya lagi Evan You meluncurkan proyek tersebut setelah mengerjakan beberapa proyek AngularJS saat dia bekerja untuk Google. Vue tidak didukung oleh perusahaan besar seperti Google (Angular) atau Facebook (React), tetapi seperti yang Anda lihat pada bagan di atas, Vue masih dapat berdiri sendiri di antara framework JavaScript teratas. Karena sejarah Evan You di Google, Anda bahkan mungkin melihat beberapa kesamaan antara Vue dan AngularJS (Angular lama)
Vue vs. Sudut vs. ReaksiSalah satu hal terbaik tentang Vue adalah hambatan masuk yang rendah Sumber. Survei JS 2018 Untuk pengembang yang memilih "akan menggunakan lagi", Vue favorit mereka. Fitur js adalah kurva belajar yang mudah, gaya pemrograman yang elegan, dan dokumentasi yang bagus Banyak kerangka kerja lain mungkin mengharuskan (atau sangat menyarankan) agar Anda mempelajari sintaksnya sendiri atau mengintegrasikan teknologi lain (mis. g. , TypeScript untuk Angular atau JSX untuk Bereaksi). Tentu saja, tidak ada yang salah dengan hal ini, tetapi ini membuat sedikit lebih sulit bagi seorang pemula untuk memulai ketika mereka harus segera mengetahui semua hal. Vue jika Anda mau, tetapi tidak wajib. Ini bukan untuk mengatakan satu metode lebih baik dari yang lain, tetapi sintaks mirip HTML ini adalah salah satu penjelasan yang mungkin mengapa pengembang menganggap Vue lebih mudah dipelajari pada awalnya. Sekali lagi, ketika membandingkan kerangka kerja populer, tidak ada yang lebih baik dari yang lain. Pada akhirnya, tergantung pada apa yang Anda rasa paling nyaman digunakan Vue adalah opsi yang bagus jika Anda ingin menjalankan sesuatu dengan cepat. Ini memiliki dukungan komunitas yang hebat, dokumentasi yang kuat dalam beberapa bahasa, dan menyenangkan untuk digunakan PengaturanBaiklah, mari kita mulai dengan beberapa kode Pertama, buka terminal Anda dan alihkan ke direktori tempat Anda ingin menyimpan proyek Anda akan membuat proyek baru ini menggunakan Vue CLI 🛠️️ Alat Vue CLI membantu memulai dan menjalankan Vue dengan cepat dengan memungkinkan Anda memilih dari pengaturan build yang telah dikonfigurasi sebelumnya. Untuk menggunakan CLI, jalankan perintah berikut di terminal Anda
Ini membuat folder baru bernama 9 dan memulai proses instalasi di folder itu
CLI sekarang akan mengajukan beberapa pertanyaan kepada Anda sehingga dapat mengatur aplikasi dengan benar. Opsi yang digunakan tutorial ini tercantum di bawah ini. Tekan _1 untuk memilih🛠️️ Langkah 1. Pilih preset — 2
🛠️️ Langkah 2. Periksa fitur yang diperlukan — _3, 4, 5, 6
🛠️️ Langkah 3. Mode riwayat — _9
Catatan. Ini akan menghapus hash default (#) dari URL 🛠️️ Langkah 4. Pra-prosesor CSS — 0
Catatan. Dart Sass adalah implementasi utama dari Sass 🛠️️ Langkah 5. Pilih linter/formatter — 1
🛠️️ Langkah 6. Fitur serat tambahan — 2 _🛠️️ Langkah 7. Lokasi konfigurasi — _3
🛠️️ Langkah 8. Simpan sebagai preset — 4
Sekarang CLI akan mengonfigurasi aplikasi Anda. Itu juga akan menginstal dependensi, jadi berikan sedikit waktu (~30 detik) 🛠️️ Setelah selesai, Anda dapat memulai aplikasi dengan menjalankan 5 atau 6
Lihat aksinya di _7. Lanjutkan dan biarkan ini berjalan di latar belakang sehingga Anda dapat melihat progres aplikasi saat Anda mengikuti tutorial
Arsitektur Aplikasi VueSekarang buka proyek Anda di editor kode Anda, dan Anda akan melihat beberapa file default yang dibuat CLI. Mari kita bersihkan ini 🛠️️ Hapus file-file ini 8 _9🛠️️ Sekarang buka 0 dan ganti dengan yang berikut 0Ini akan meninggalkan Anda dengan beranda kosong dan bilah navigasi dengan dua tautan. Rumah dan Tentang Mari kita lihat sekilas file-file penting yang tersisa sehingga Anda dapat melihat bagaimana mereka bekerja sama bermain. jsFile pertama yang perlu diperhatikan adalah file ________26______1. Ini akan menjadi titik masuk untuk aplikasi Vue Anda 1Anda memiliki impor di bagian atas file
Selanjutnya, Anda memiliki _3, yang menyetel aplikasi dalam mode pengembanganDan terakhir, Anda membuat instance Vue baru di bagian bawah Instance Vue diperlukan untuk setiap aplikasi Vue. yang berisi informasi tentang aplikasi Anda, seperti elemen DOM tempat instance Vue akan dipasang, data yang akan digunakan instance, yang berjalan di beberapa titik selama siklus hidup instance, dan banyak lagi Dalam hal ini, instance Vue menggunakan router, merender aplikasi dengan template 2 (lebih lanjut tentang ini segera), dan kemudian memasangnya ke elemen DOM dengan 6 dari 7indeks. htmlSelanjutnya, buka _8, dan Anda akan melihat file HTML 9 yang cukup standar 2Jika Anda melihat ke bagian bawah file, Anda akan melihat di mana 0 misterius di file 1 itu berperan. _2 itu adalah tempat instance Vue akan disuntikkanAplikasi. melihatFile penting berikutnya adalah 3. Ini adalah komponen pertama AndaAnda belum perlu mengetahui semua detail file ini, ketahuilah bahwa ini adalah "blok penyusun" selanjutnya dari aplikasi Vue Anda. Saat Anda meninjau file _1, Anda melihatnya sedang mengimpor dan merender template bernama 2, yang merupakan file iniSebelum masuk ke detail file ini, mari kita pelajari terlebih dahulu tentang apa itu komponen dengan meninjau sistem komponen Vue Menggunakan Komponen di VueKonsep komponen secara umum terkadang terlalu rumit, namun kenyataannya cukup sederhana. Komponen adalah blok kode modular dan dapat digunakan kembali. Ini berisi semua HTML, JavaScript, dan CSS yang diperlukan untuk fungsinya Bayangkan Anda memiliki situs web sederhana yang memiliki dua halaman. halaman rumah dan halaman portofolio
Anda memutuskan bahwa Anda ingin halaman Portofolio Anda menyertakan semua testimonial yang ada di beranda Anda juga Dalam skenario ini, Anda dapat menyalin/menempelkan semua kode yang diperlukan untuk testimonial ke kedua halaman, tetapi Anda akan melanggar aturan KERING emas ("Jangan Ulangi Diri Sendiri") Di sinilah ide komponen mulai masuk akal. Alih-alih membuat kode duplikat, Anda dapat mengeluarkan kode testimonial itu dan mengemasnya ke dalam file tersendiri. Potongan kode mandiri ini akan berisi HTML, gaya, dan JS apa pun yang diperlukan untuk membuat carousel berfungsi Sekarang, kapan pun Anda ingin memasukkan "komponen" testimonial itu di suatu tempat, yang harus Anda lakukan hanyalah mengimpor komponen itu Aplikasi Anda akan mulai mengambil semacam struktur pohon. Anda akan memiliki komponen "root", yang dalam hal ini adalah 3, dan komponen itu akan mengimpor komponen lain. Semua potongan kecil kode ini bersatu untuk membangun aplikasi Anda
Sekarang setelah Anda memiliki ide tentang komponen, mari kita lihat seperti apa komponen Vue komponen VueAda banyak cara untuk menyusun komponen di Vue. Mari kita lihat cara yang paling populer. Komponen file tunggal Komponen file tunggal mengemas template, logika, dan gaya yang digunakan oleh komponen ke dalam satu file dengan ekstensi 7. Metode ini memerlukan penyiapan build, yang telah disiapkan CLI untuk Anda. Mari kita lihat contoh komponen 3HTML terlampir dalam tag ________29______8. Di dalam, Anda akan melihat _9. Ini adalah contoh bagaimana Anda dapat menggunakan komponen lain di dalam komponen ini
Selanjutnya, ada tag _01, yang meliputi
Selanjutnya, ada tag _05. Gaya yang ditentukan di sini berlaku untuk komponen ini dan semua turunannya. Namun, dalam kasus ini, ada properti _06 yang ditambahkan, yang membatasi gaya ini hanya untuk komponen ini. Dan terakhir, Anda juga menentukan bahwa Anda menggunakan SCSS sebagai bahasa stylesheetMari kita lihat file _07 itu lagi sekarang karena Anda memiliki sedikit latar belakang tentang struktur komponenAplikasi. melihat Buka 3 4Ini adalah template tampilan pertama yang dirender di aplikasi Anda. Komponen lainnya akan dimulai dari sini Lihatlah 09 dan 10. Ini adalah bagaimana aplikasi Anda akan menangani perutean. Jika Anda memilih untuk memiliki router built-in menggunakan CLI, Anda sudah memiliki template yang bagus untuk digunakanKami akan segera membahas lebih dalam tentang perutean, tetapi ketahuilah bahwa saat Anda mengeklik salah satu tautan tersebut, templat yang sama ini akan tetap dirender, tetapi 11 akan diganti dengan rute apa pun yang aktif. Dalam hal ini, komponen _12 atau 13. Ini adalah bagaimana Anda dapat menggunakan kembali tata letak dan navbar yang sama ini di seluruh aplikasiCoba klik tautan tersebut untuk melihatnya sendiri Membangun Komponen AplikasiSekarang setelah Anda mengetahui anatomi aplikasi Vue dan cara membuat komponen, saatnya untuk mulai membuat 🛠️️ Pastikan Anda masih berada di folder 9 di terminal lalu buat file/folder ini 5
🛠️️ Sekarang buat komponen yang akan dibagikan di antara halaman-halaman ini 6Itu harus dilakukan untuk saat ini. Mari kita mulai mengisi file-file ini dan membahas tujuan dari setiap file Menggunakan Bulma untuk StylingUntuk membuat penataan sedikit lebih mudah, Anda akan menggunakan Bulma, yang merupakan framework CSS sumber terbuka 🛠️️ Beralih ke folder 9 lalu masukkan perintah di bawah ini untuk menginstal Bulma 7🛠️️ Sekarang buka 1 di editor Anda dan impor Bulma dengan menambahkan ini ke bagian atas file setelah semua impor lainnya _8🛠️️ Mulai aplikasi sekali lagi sehingga Anda dapat melihat pekerjaan Anda sedang berlangsung saat Anda terus membangun di bagian selanjutnya _9Anda dapat membiarkannya berjalan di latar belakang selama sisa tutorial ini, dan Anda akan selalu dapat melihatnya di browser di 18Komponen Rumah Sekarang mari mulai mengerjakan komponen 🛠️️ Buka Komponen Rumah di 0 dan rekatkan di bawah ini _0Ini akan memberi Anda spanduk dan tombol besar di bagian atas halaman. Tombol tersebut akan mengarah ke formulir pendaftaran, yang akan Anda kirim nanti Tentang Komponen Komponen _13 hadir secara default dengan instalasi Vue, tetapi mari kita sedikit merapikannya🛠️️ Buka _21, dan ganti semuanya dengan ini _1Komponen Nav 🛠️️ Sekarang perbaiki nav. Buka _22 dan rekatkan ini _2Jika Anda menyegarkan, Anda akan melihat nav tidak berubah. Itu karena Anda sebenarnya tidak menggunakan komponen ini di mana pun 🛠️️ Buka ________29______3 dan ganti dengan ini _3Karena Anda mendefinisikan tautan router di komponen 24 sekarang, Anda dapat membuangnya di file ini. Yang perlu Anda lakukan hanyalah mengimpor komponen _24. Gaya _26 lama juga telah dihapus karena komponen 24 memiliki gayanya sendiriSekarang, jika Anda menyegarkan, Anda akan melihat nav baru Anda. Anda bahkan dapat mengeklik, dan itu akan membuka rute berbeda yang telah Anda tentukan di komponen 24Selanjutnya, Anda akan menambahkan komponen ke halaman 12 AndaKomponen DaftarAcara 🛠️️ Buka 30 dan rekatkan ini _4Ini akan membuat blok kartu yang menempati 1/4 baris (dengan menggunakan 31 Bulma dengan 32). Masing-masing dari 1/4 slot tersebut akan diisi dengan komponen 33🛠️️ Untuk saat ini, cukup ulangi kode kartu tersebut beberapa kali agar Anda dapat melihat bagaimana strukturnya nantinya _5Selanjutnya Anda perlu
🛠️️ Buka 0 dan ganti bagian 01 dengan ini _6🛠️️ Sekarang di bagian template, panggil komponen dengan 40 _7Anda sekarang akan melihat teks subtitel, "Lihat acara kami yang akan datang", ditampilkan di bawah spanduk beranda. Namun, belum ada satu pun kartu yang ditampilkan. Itu karena Anda belum membuatnya Komponen Kartu Acara 🛠️️ Buka 41 dan rekatkan _8Anda sekarang akan melihat dua kartu diisi dengan beberapa konten tiruan Tentu saja, Anda ingin setiap kartu menjadi unik dan mewakili peristiwa yang sebenarnya. Anda akan segera kembali ke komponen ini untuk melihat bagaimana Anda dapat memasukkan data dan menyelesaikannya Untuk saat ini, selesaikan penyiapan komponen Anda yang lain Komponen Tunggal Peristiwa 🛠️️ Buka 42 dan rekatkan ini _9Ini akan menjadi halaman yang muncul saat pengguna mengklik acara dari daftar di beranda. Karena halaman ini sebenarnya belum ada, inilah saat yang tepat untuk mengunjungi kembali router Anda Jalur router 🛠️️ Buka 43 dan ganti isinya dengan ini _0Tekan simpan dan arahkan ke _44. Anda sekarang akan melihat isi dari komponen 45Jika Anda melihat di bawah 46 di router, Anda akan melihat parameter rute, 47. Ini adalah bagaimana Anda akan membuat halaman terpisah untuk setiap acara. Setelah Anda menambahkan data, Anda dapat menavigasi ke acara apa pun dengan menambahkan 6 ke akhir 49Mari bekerja menambahkan data sekarang Menambahkan Data ke Aplikasi Vue AndaAgar tutorial ini tetap fokus pada dasar-dasar Vue, Anda hanya akan membuat larik objek (di mana setiap objek adalah peristiwa) dan menyimpannya di dalam komponen yang membutuhkannya.
Mari tinjau kembali tiga komponen yang tidak memiliki data dinamis dan lihat cara mengisinya Komponen DaftarAcara 🛠️️ Kembali ke komponen 50 di 30 dan gulir ke bawah di mana tag 52 dimulai. Ganti keseluruhan _53 dengan ini _1Satu-satunya hal yang berubah di sini adalah penambahan fungsi 54 yang mengembalikan objek kosong bernama 55 dan array bernama 56
Selanjutnya, Anda perlu memodifikasi bagian HTML dari file ini untuk mengulangi peristiwa ini dan kemudian mengirim masing-masing ke rantai untuk dirender oleh komponen anak, 33🛠️️ Ganti semua yang ada di antara 8 tag dengan _2Mari kita lihat lebih dekat blok kode yang berubah (diberi spasi untuk keterbacaan yang lebih baik) _3Anda dapat mengulangi peristiwa dalam larik _56 menggunakan direktif Vue 63. Ini bertindak sebagai 64 loop dan mengeluarkan setiap peristiwa secara individual sehingga dapat dirender secara terpisah oleh komponen 33Ini juga pertama kalinya Anda melihat arahan Arahan adalah jenis markup khusus yang dapat Anda gunakan untuk melakukan sesuatu pada elemen DOM. Di Vue, ini semua dimulai dengan 66. Jadi, dalam hal ini, Anda menggunakan singkatan 63 untuk membuat loop 64. Contoh umum lainnya adalah 69, yang membuat kondisional di dalam template. Anda dapat melihat aDi sini, Anda menggunakan atribut 70 Vue untuk mengikat (dalam hal ini, 6) ke setiap peristiwa
Anda juga mengikat nilai 55 saat ini di 64 loop ke objek 55 yang Anda buat sebelumnya dengan 77. Ini akan memungkinkan Anda untuk mengirim objek ini ke komponen anak untuk dirender secara terpisahSelanjutnya, Anda menggunakan _09 untuk membuat setiap kartu menjadi tautan yang dapat diklik. Kembali ke file _79, Anda membuat rute 80 dengan parameter rute 6. Rute ini menggunakan komponen _45, yang akan merender halaman untuk setiap peristiwa tertentu. Anda menggunakan 6 dari setiap acara untuk memastikannya tertaut ke laman acara yang benarLanjutkan dan klik salah satu, dan Anda akan melihat bahwa itu tertaut ke satu halaman acara yang Anda buat Terakhir, Anda memanggil komponen _33 untuk mengisi setiap kartu. Anda mengirim variabel yang disebut _55 ke kartu dan kemudian meneruskan 55 saat ini dari 64 loopSaat ini, komponen _33 belum siap untuk menerima data, jadi mari kita perbaikiKomponen Kartu Acara 🛠️️ Buka komponen 33 di 41. Gulir ke bawah ke tempat Anda memiliki 53 tag dan ganti dengan ini _4Komponen ini memiliki sesuatu yang baru. _92Setiap kali komponen Anda mengharapkan data, Anda harus menambahkan nama variabel data tersebut ke opsi 92. 92 adalah kata yang lucu, tetapi sebenarnya hanya berarti properti
Di sinilah Anda menentukan data yang diharapkan komponen dari komponen induknya Prop _55 ini diteruskan ke komponen saat ini dari komponen induk. Ini memungkinkan Anda untuk menampilkannya di template HTML menggunakan kurung kurawal _5Ini dikenal sebagai. Menggunakan interpolasi string, Anda dapat menampilkan nilai 55 di template Anda. Ini adalah bentuk pengikatan data, artinya setiap kali nilai 55 di 98 berubah, nilai yang ditampilkan di template juga akan berubah🛠️️ Untuk melihat ini beraksi, lanjutkan dan perbarui bagian templat 99 dengan ini _6Jika Anda kembali ke beranda di browser, Anda akan melihat kartu sekarang memiliki data yang benar Sekadar meringkas, komponen induk, _50, mengirim data peristiwa turun dari 64 loop dua kali terpisah. Setiap kali komponen 33 dipanggil, ia menerima 55 data ke 92, yang memungkinkan Anda merender nama, tanggal, dan lokasiEventSingleComponent Bagian terakhir dari aplikasi yang memerlukan update data adalah komponen 45. Buka _42Anda dapat melihat status komponen ini saat ini di browser di 44. Semuanya masih dikodekan dengan keras dan menunggu dataKomponen ini adalah contoh yang bagus tentang bagaimana mengirimkan data mulai menjadi rumit Pikirkan kembali bagaimana tautan ke halaman ini dibuat di 08 _7Ini menggunakan 09 dari 64 loop untuk membuat tautan untuk setiap kartu/acara, tetapi bagaimana Anda mengirimkan data aktual?Anda dapat menggunakan metode yang mirip dengan yang Anda gunakan sebelumnya untuk mengisi data dari 33 dan mengirim beberapa data ke 12 di 45. Tapi kemudian Anda akan menggunakan router untuk mengelola data, yang sedikit anehAnda juga harus mempertimbangkan apa yang akan terjadi jika alih-alih mengeklik tautan, seseorang langsung membuka 44. Bagaimana ia menerima alat peraga yang diharapkannya jika kode 09 spesifik itu tidak pernah diaktifkan?Itu tidak akan Jadi untuk aplikasi ini, opsi terbaik Anda adalah dengan menarik datanya lagi Inilah inti dari apa yang perlu terjadi
🛠️️ Untuk melakukan ini, buka 17 dan ganti seluruhnya dengan _8Gulir ke bawah ke bagian _52 dan Anda akan melihat bahwa data yang Anda gunakan juga telah ditambahkan ke komponen ini. Tapi kali ini, ada potongan kode baru _9Pertama, mari kita bahas untuk apa ________14______19 digunakan Instance Vue melewati banyak langkah saat dibuat. Ini menyiapkan observasi data, mengompilasi template, memasang instance Vue ke DOM, dan memperbarui DOM saat perubahan terdeteksi Tetapi bagaimana jika Anda perlu melompat di beberapa titik di antara langkah-langkah ini dan menjalankan beberapa kode? Pengait _19 memungkinkan Anda menjalankan beberapa kode tepat setelah instance dibuatAda beberapa kait siklus hidup yang tersedia, seperti yang Anda lihat pada gambar di bawah
Jadi tepat setelah instance dibuat, fungsi ________14______19 berjalan _9Fungsi ini membuat variabel bernama _22 yang akan menampung 6 dari peristiwa yang ingin Anda render. Anda dapat menarik _6 ini dari parameter rute 6 yang Anda atur sebelumnya di 43Selanjutnya, Anda membuat variabel bernama 55, yang akan menampung objek acara. Ia menggunakan fungsi JavaScript 28 pada larik 56, yang akan mengulang melalui larik hingga menemukan peristiwa dengan 6 dari 22 (parameter rute)Kemudian Anda menyetel variabel _55 ke hasil ini. Dan sekarang, Anda memiliki data yang diperlukan untuk merender peristiwa khusus iniIdealnya, Anda ingin menarik data ini dari API. Dalam kasus seperti ini, Anda cukup menekan titik akhir yang mengembalikan kejadian spesifik yang Anda inginkan dengan mengirimkan parameter rute, tetapi karena Anda belum memiliki API, metode ini baik-baik saja. Sebagai tindak lanjut dari tutorial ini, Anda akan memfaktorkan ulang kode ini untuk menggunakan API sebenarnya Hal keren lainnya yang Anda lakukan adalah mengulang gambar di acara tertentu. Mari kita lihat lebih dekat blok kode yang menampilkan gambar _1Ini menggunakan direktif _63 Vue lagi untuk mengulang melalui gambar. Setelah mengambil satu gambar, itu mengikat URL gambar, 34, ke atribut 35. Merupakan praktik yang baik untuk selalu menyetel atribut _36, sehingga Anda dapat mengikat nilai untuk 37 ke atribut 36 dari gambar iniSekarang kembali ke beranda dan klik di sekitar. Semua komponen merender data yang benar, jadi saatnya menambahkan autentikasi Menambahkan Otentikasi ke Aplikasi Vue AndaHal terakhir yang harus dilakukan adalah menambahkan fungsionalitas login ke aplikasi. Anda akan menggunakan layanan autentikasi Auth0 untuk melakukan ini Pertama, daftar akun Auth0 gratis di sini → Setelah Anda terdaftar, Anda akan dibawa ke dasbor manajemen Auth0
🛠️️ Selanjutnya, klik "Pengaturan" untuk mengisi beberapa informasi yang diperlukan Auth0 untuk mengonfigurasi autentikasi untuk aplikasi Anda URL Panggilan Balik yang Diizinkan — 18Di sinilah Auth0 akan mengarahkan ulang pengguna setelah diautentikasi URL Keluar yang Diizinkan — 18Ini adalah URL tempat pengguna akan kembali setelah mereka keluar dari aplikasi Anda Asal Web yang Diizinkan — _18Ini adalah URL yang digunakan Auth0 Gulir ke bawah dan klik tombol "Simpan Perubahan". Itu saja yang Anda butuhkan dari dasbor untuk saat ini, tetapi jangan diklik dulu. Anda harus segera menarik beberapa nilai ini dari dasbor ke aplikasi Anda Instal paket Auth0 SPA🛠️️ Kembali ke terminal dan instal paket ________14______42 Auth0 di direktori root aplikasi _2Buat pembungkus autentikasiSelanjutnya, Anda akan membuat objek Vue pembungkus yang dapat digunakan kembali di sekitar Auth0 SDK. Anda juga akan membuat plugin Vue yang memaparkan pembungkus ini ke seluruh aplikasi 🛠️️ Buat file dan folder baru untuk ini. Pastikan Anda masih berada di direktori root 9 dan masuk _3🛠️️ Sekarang buka file 44 yang baru dibuat dan rekatkan di bawah ini _4Komentar dalam file ini mencakup detail tentang apa yang terjadi, tetapi untuk meringkas, pertama-tama Anda membuat (atau mengembalikan) instance Auth0 SDK. Instance hanyalah objek Vue
Selama kait siklus hidup 19, Anda membuat instance SDKSaat pengguna mengklik "Masuk", mereka dialihkan ke halaman Login Universal Auth0 (lebih lanjut tentang ini nanti). Mereka akan memasukkan kredensial mereka di sana dan kemudian dialihkan kembali ke aplikasi. Di sinilah "URL Panggilan Balik yang Diizinkan" dari dasbor Auth0 berperan. _59 akan berjalan, yang akan mendapatkan data pengguna yang diautentikasi, mengambil token, dan memperbarui 46 ke trueInstance ini juga berisi objek _4 (ditarik dan ditempel di bawah). Objek ini akan menyimpan nilai untuk Auth0 62, 63, dan 64 dari dasbor Auth0 _5Nilai-nilai ini tidak terlalu sensitif, tetapi masih merupakan praktik yang baik untuk membiarkannya di luar kendali sumber Anda (mis. g. GitHub). Jadi mari kita buat file yang dapat ditambahkan ke 65 sehingga Git akan mengabaikannya🛠️️ Pastikan Anda masih berada di direktori 9 dan jalankan _6Jika Anda menggunakan Git atau kontrol versi lainnya, buka 65 atau yang setara. Rekatkan _68 di baris mana saja. Sekarang file ini akan diabaikan saat Anda mendorong ke repo Anda lagi🛠️️ Selanjutnya, buka 68 dan rekatkan di bawah ini _7Menemukan nilai _70 Anda
Selanjutnya, buka _1 dan instal plugin dengan 76. Plugin ini akan memungkinkan Anda untuk mengakses status autentikasi secara global (dari mana saja dalam aplikasi). _76 adalah metode global yang digunakan untuk memanggil plugin, dan harus ditempatkan sebelum 78🛠️️ Ganti semua 1 dengan yang berikut ini _8Di sini Anda hanya mengimpor file konfigurasi Auth0 yang Anda buat untuk mendapatkan akses ke nilai 63 dan 62. Selanjutnya, Anda mengimpor _82 yang telah dibuat sebelumnyaTerakhir, Anda menginstal dan mengonfigurasi plugin Wiring up tombol login dan logoutSekarang Anda telah mengkonfigurasi plugin autentikasi Auth0, saatnya untuk memperbaiki tombol "Masuk" sehingga benar-benar melakukan sesuatu 🛠️️ Buka ________7______22. Temukan blok kode yang dimulai dengan 84 dan ganti dengan ini _9Tombol sekarang dibungkus _85 untuk memastikan bahwa klien SDK telah selesai memuat sebelum Anda mencoba mengakses status pengguna. Selanjutnya, Anda menggunakan _86, yang akan menangani peristiwa klik dengan memanggil metode 87 atau 57 saat pengguna mengklik tombol masing-masing🛠️️ Ayo buat metode tersebut sekarang. Di file yang sama, gulir ke bawah ke tag 52 dan ganti dengan ini 0Sekarang kembali ke aplikasi dan klik "Masuk" dan Anda akan dialihkan ke halaman Auth0 Universal Login
Setelah Anda membuka halaman Login Universal Auth0, daftar dengan akun pengguna palsu. Anda kemudian akan melihat layar yang memberi tahu Anda bahwa aplikasi meminta akses ke profil dan email Anda Klik tanda centang, dan Anda akan dialihkan kembali ke "URL Panggilan Balik yang Diizinkan" yang Anda tentukan di dasbor, yang merupakan beranda aplikasi Anda. Sekarang alih-alih tombol "Masuk", Anda akan melihat tombol "Keluar".
Mengakses informasi penggunaAuth0 memungkinkan Anda mengakses informasi pengguna yang masuk di templat Anda dengan yang berikut ini _1Isi _91 terlihat seperti ini _2Jadi jika Anda ingin menambahkan halaman profil di masa mendatang, Anda memiliki akses ke data ini (dan lebih banyak lagi) untuk ditampilkan Sekarang setelah Anda tahu cara menambahkan tombol masuk, mari pasang tombol kedua di beranda 🛠️️ Buka 0 dan ganti semuanya antara 93 dengan yang berikut _3🛠️️ Sekarang Anda hanya perlu menambahkan bagian metode dengan fungsi 94. Gulir ke bawah ke tempat tag _52 dan ganti 36 dengan ini _4Sekarang pengguna dapat masuk dengan tombol ini juga, dan setelah mereka masuk, itu akan diganti dengan pesan selamat datang dengan nama mereka menggunakan 97Siapkan Penjaga RuteJadi sekarang, hal terakhir yang perlu Anda lakukan adalah mengalihkan pengguna yang tidak diautentikasi dari halaman Peristiwa Tunggal. Ini berarti mereka harus dapat melihat beranda dengan daftar kartu/acara, tetapi segera setelah mereka mengklik ke halaman detail acara, mereka harus ditendang ke halaman masuk
Karena Anda belum membuat API backend, Anda hanya menyimpan semua data dalam komponen di frontend. Meskipun Anda akan menyiapkan penjaga rute untuk mengalihkan pengguna yang tidak diautentikasi dari satu halaman acara, mereka masih dapat membaca file JavaScript dan menemukannya. Saya akan menunjukkan caranya sebentar lagi {% jika halaman. url berisi '/amp/' %} Pada bagian 2, Anda akan mem-build API sehingga data ini disimpan dan dilindungi di backend dan hanya ditarik ke frontend jika pengguna diautentikasi. {% else %} Di bagian 2, Anda akan mem-build API sehingga data ini disimpan dan dilindungi di backend dan hanya ditarik ke frontend jika pengguna diautentikasi. {% berakhir jika %} Mari atur penjaga rute sekarang sehingga ketika data datang dari backend, UI untuk mendorong pengguna ke halaman login sudah ada 🛠️️ Buat file bernama 98 di direktori 99{% prism bash %} sentuh src/auth/authGuard. js {%endprism %} 🛠️️ Buka itu di editor Anda dan rekatkan di bawah ini 5Ini menggunakan metode _00 dari file 44, yang akan menerapkan fungsi yang mencegah rute diakses jika pengguna tidak masukJika pengguna diautentikasi, _02 dikembalikan, yang memungkinkan pengguna melanjutkan ke rute yang diklik. Jika pengguna tidak diautentikasi, mereka dialihkan ke halaman Auth0 Universal LoginSelanjutnya, Anda perlu menambahkan penjaga autentikasi ini ke router agar ini berjalan sebelum tampilan apa pun dikembalikan Anda cukup memeriksa apakah pengguna diautentikasi. Jika ya, biarkan mereka lewat, jika tidak, kirim mereka ke halaman login 🛠️️ Buka file router di 43 dan tambahkan ganti dengan _6 _04 diimpor di bagian atas. Karena Anda hanya ingin meminta autentikasi untuk rute detail acara, telah ditambahkan ke rute tersebutSekarang, jika Anda sudah masuk sebelumnya, Anda dapat mengklik salah satu kartu acara tersebut dan Anda masih dapat melihat halaman tunggal acara tersebut Tetapi jika Anda membuka jendela penyamaran dan mencoba mengakses rute yang sama, Anda akan ditendang ke halaman login, persis seperti yang diharapkan Seperti yang dibahas sebelumnya, ini tidak mencegah pengguna menemukan data untuk halaman tersebut Jika Anda ingin tahu bagaimana ini mungkin, keluar atau buka jendela penyamaran, lalu buka _06 di browser Anda. Sekarang telusuri salah satu deskripsi acara seperti "Habiskan malam yang elegan dengan makan malam dan berdansa bersama kami saat kami menggalang dana untuk pertanian penyelamatan baru kami. ", dan benar saja, ada datanyaJadi pada titik ini, Anda mungkin bertanya, "Holly, lalu apa gunanya redirect?" Saya senang Anda bertanya. Ini sebagian besar dimaksudkan untuk pengalaman pengguna. Bayangkan bahwa data dilindungi di backend. Anda ingin memberi sinyal bahwa pengguna harus masuk untuk melihat halaman tertentu itu. Jika Anda tidak merender data apa pun di halaman itu, pengguna akan dihadapkan pada halaman kosong dan berpikir ada sesuatu yang rusak. Dalam skenario ini, mengarahkan mereka ke halaman masuk akan dengan mudah menandakan bahwa mereka harus masuk untuk melihatnya Di bagian 2 tutorial ini, Anda akan mempelajari cara membuat API di Express dan menarik data ke dalam aplikasi Vue Anda dari sana. Ia menggunakan aplikasi Vue yang sama dengan yang baru saja Anda buat, jadi jika Anda tertarik, Anda dapat mulai menjalankannyaBungkusJika ini pertama kalinya Anda bekerja dengan Vue. js, semoga ini membantu Anda memahami bagaimana semuanya menyatu dalam aplikasi kecil. Sekadar rekap, berikut adalah beberapa topik yang dibahas dalam tutorial ini |