Bagikan melalui


Tutorial: Membuat aplikasi ASP.NET Core dengan React di Visual Studio

Dalam artikel ini, Anda mempelajari cara membuat proyek ASP.NET Core untuk bertindak sebagai backend API dan proyek React untuk bertindak sebagai UI.

Saat ini, Visual Studio menyertakan templat ASP.NET Core Single Page Application (SPA) yang mendukung Angular dan React. Templat menyediakan folder Aplikasi Klien bawaan di proyek ASP.NET Core Anda yang berisi file dasar dan folder dari setiap kerangka kerja.

Anda dapat menggunakan metode yang dijelaskan dalam artikel ini untuk membuat Aplikasi Halaman Tunggal Inti ASP.NET yang:

  • Letakkan aplikasi klien dalam proyek terpisah, di luar dari proyek ASP.NET Core
  • Membuat proyek klien berdasarkan kerangka kerja CLI yang diinstal di komputer Anda

Nota

Artikel ini menjelaskan proses pembuatan proyek menggunakan templat yang diperbarui di Visual Studio 2022 versi 17.11, yang menggunakan Vite CLI. Vite menentukan versi React menggunakan dependensi proyek, seperti yang dikonfigurasi di package.json.

Prasyarat

  • Visual Studio 2022 versi 17.11 atau yang lebih baru dengan ASP.NET dan paket pengembangan web terinstal. Buka halaman unduhan Visual Studio untuk menginstalnya secara gratis. Jika Anda perlu menginstal beban kerja dan sudah memiliki Visual Studio, buka Alat >Dapatkan Alat dan Fitur..., yang membuka Alat Penginstal Visual Studio. Pilih beban kerja ASP.NET dan pengembangan web, setelah itu pilih Ubah.
  • npm (https://www.npmjs.com/), yang disertakan dengan Node.js

Membuat aplikasi frontend

  1. Di jendela Mulai, pilih Buat proyek baru.

    Cuplikan layar memperlihatkan Buat proyek baru.

  2. Cari React di bilah pencarian di bagian atas lalu pilih React dan ASP.NET Core. Templat ini adalah templat JavaScript.

    Cuplikan layar memperlihatkan memilih templat.

  3. Beri nama proyek ReactWithASP lalu pilih Berikutnya.

    Dalam dialog Informasi Tambahan, pastikan Konfigurasikan untuk HTTPS sudah diaktifkan. Dalam sebagian besar skenario, biarkan pengaturan lain pada nilai default.

  4. Pilih Buat.

    Penjelajah Solusi memperlihatkan informasi proyek berikut:

    Cuplikan layar memperlihatkan Penjelajah Solusi.

    Dibandingkan dengan templat React mandiri , Anda akan melihat beberapa file baru dan yang dimodifikasi untuk integrasi dengan ASP.NET Core:

    • vite.config.js
    • App.js (dimodifikasi)
    • App.test.js (dimodifikasi)
  5. Pilih browser yang diinstal dari toolbar Debug, seperti Chrome atau Microsoft Edge.

    Jika browser yang Anda inginkan belum diinstal, instal browser terlebih dahulu, lalu pilih.

Mengatur properti proyek

  1. Di Penjelajah Solusi, klik kanan proyek ReactWithASP.Server dan pilih Properti .

    Cuplikan layar memperlihatkan properti Proyek terbuka.

  2. Di halaman Properti, buka tab Debug dan pilih opsi Buka UI profil peluncuran debug. Hapus centang opsi Luncurkan Browser untuk profil https atau profil bernama sesuai dengan proyek ASP.NET Core, jika ada.

    Cuplikan layar memperlihatkan profil peluncuran Debug pada antarmuka.

    Nilai ini mencegah pembukaan halaman web dengan data cuaca sumber.

    Nota

    Di Visual Studio, launch.json menyimpan pengaturan startup yang terkait dengan tombol Mulai di toolbar Debug. Saat ini, launch.json harus berada di bawah folder .vscode.

  3. Klik kanan solusi di Penjelajah Solusi dan pilih properti . Verifikasi bahwa pengaturan proyek Startup diatur ke Beberapa proyek, dan bahwa Tindakan untuk kedua proyek diatur ke Mulai.

Memulai proyek

Tekan F5 atau pilih tombol Mulai di bagian atas jendela untuk memulai aplikasi. Dua perintah muncul:

  • Proyek ASP.NET Core API berjalan

  • Vite CLI memperlihatkan pesan seperti VITE v4.4.9 ready in 780 ms

    Nota

    Periksa pesan di output konsol. Misalnya mungkin ada pesan untuk memperbarui Node.js.

Aplikasi React muncul dan diisi melalui API (port localhost dapat bervariasi dari cuplikan layar).

Cuplikan layar memperlihatkan aplikasi prakiraan cuaca.

Jika Anda tidak melihat aplikasi, lihat Pemecahan Masalah.

Menerbitkan proyek

  1. Di Penjelajah Solusi, klik kanan proyek ReactWithASP.Server dan pilih Tambahkan>Referensi Proyek.

    Pastikan proyek reactwithasp.client dipilih.

  2. Pilih OK.

  3. Klik kanan proyek ASP.NET Core lagi dan pilih Edit File Proyek.

    Ini membuka file bernama .csproj untuk proyek.

  4. Dalam file .csproj, pastikan referensi proyek menyertakan elemen <ReferenceOutputAssembly> dengan nilai yang diatur ke false.

    Referensi ini akan terlihat seperti berikut ini.

     <ProjectReference Include="..\reactwithasp.client\reactwithasp.client.esproj">
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
    
  5. Klik kanan proyek ASP.NET Core dan pilih Muat Ulang Proyek jika opsi tersebut tersedia.

  6. Di Program.cs, pastikan kode berikut ada.

    app.UseDefaultFiles();
    app.UseStaticFiles();
    
    // Configure the HTTP request pipeline.
    if (app.Environment.IsDevelopment())
    {
       app.UseSwagger();
       app.UseSwaggerUI();
    }
    
  7. Untuk menerbitkan, klik kanan proyek ASP.NET Core, pilih Terbitkan, dan pilih opsi untuk mencocokkan skenario penerbitan yang Anda inginkan, seperti Azure, terbitkan ke folder, dll.

    Proses penerbitan membutuhkan lebih banyak waktu daripada hanya untuk proyek ASP.NET Core, karena perintah npm run build dipanggil saat menerbitkan. BuildCommand berjalan npm run build secara bawaan.

    Jika Anda menerbitkan ke folder, lihat struktur direktori ASP.NET Core untuk informasi selengkapnya tentang file yang ditambahkan ke folder publikasi.

Pemecahan masalah

Kesalahan proksi

Anda mungkin melihat kesalahan berikut:

[HPM] Error occurred while trying to proxy request /weatherforecast from localhost:4200 to https://localhost:7183 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

Jika Anda melihat masalah ini, kemungkinan besar frontend dimulai sebelum backend.

  • Setelah Anda melihat perintah backend aktif dan berjalan, cukup refresh aplikasi React di browser.
  • Selain itu, verifikasi bahwa backend dikonfigurasi untuk dijalankan sebelum front end. Untuk memverifikasi, pilih solusi di Penjelajah Solusi, pilih Properti dari menu Proyek . Selanjutnya, pilih Mengkonfigurasi Proyek Startup dan pastikan bahwa proyek backend ASP.NET Core menjadi yang pertama dalam daftar. Jika bukan yang pertama, pilih proyek dan gunakan tombol Panah atas untuk menjadikannya proyek pertama dalam daftar peluncuran.

Verifikasi port

Jika data cuaca tidak dimuat dengan benar, Anda mungkin juga perlu memverifikasi bahwa port Anda sudah benar.

  1. Pastikan nomor port cocok. Buka file launchSettings.json di proyek ASP.NET Core ReactWithASP.Server (di folder Properti). Dapatkan nomor port dari properti applicationUrl.

    Jika ada beberapa properti applicationUrl, cari properti menggunakan titik akhir https. Ini terlihat mirip dengan https://localhost:7183.

  2. Buka file vite.config.js untuk proyek React. Perbarui properti target agar sesuai dengan properti applicationUrl di launchSettings.json. Nilai yang diperbarui terlihat mirip dengan yang berikut ini:

    target: 'https://localhost:7183/',
    

Kesalahan privasi

Anda mungkin melihat kesalahan sertifikat berikut:

Your connection isn't private

Coba hapus sertifikat React dari %appdata%\local\asp.net\https atau %appdata%\roaming\asp.net\https, lalu coba lagi.

Docker

Jika Anda membuat proyek dengan dukungan docker diaktifkan, lakukan langkah-langkah berikut:

  1. Setelah aplikasi dimuat, dapatkan port HTTPS Docker menggunakan jendela kontainer di Visual Studio. Periksa tab Environment atau Ports.

    Cuplikan layar memperlihatkan port kontainer Docker.

  2. Buka file vite.config.js untuk proyek React. Perbarui variabel target agar sesuai dengan port HTTPS di jendela Kontainer. Misalnya, dalam kode berikut:

    const target = env.ASPNETCORE_HTTPS_PORT ? `https://localhost:${env.ASPNETCORE_HTTPS_PORT}` :
       env.ASPNETCORE_URLS ? env.ASPNETCORE_URLS.split(';')[0] : 'https://localhost:7143';
    

    ubah https://localhost:7143 ke port HTTPS yang cocok (dalam contoh ini, https://localhost:44307).

  3. Mulai ulang aplikasi.

Langkah berikutnya

Untuk informasi selengkapnya tentang aplikasi SPA di ASP.NET Core, lihat bagian React di bawah Mengembangkan Aplikasi Halaman Tunggal. Artikel tertaut menyediakan konteks tambahan untuk file proyek seperti aspnetcore-https.js, meskipun detail implementasi berbeda berdasarkan perbedaan templat. Misalnya, alih-alih folder ClientApp, file React terkandung dalam proyek terpisah.

Untuk informasi MSBuild khusus untuk proyek klien, lihat properti MSBuild untuk JSPS.