cari

Pergi tanpa bangunan

Hubungan jarak jauh sering melibatkan penerbangan yang kerap. Semasa penerbangan ini, idea untuk menangkap Reddit menjadi menarik. Daripada mencari aplikasi Reddit di luar talian, saya memutuskan untuk membina teknologi web moden saya sendiri dan pendekatan pembangunan "tanpa membina".

Jawatan ini meraikan pemaju web yang inovatif dan sumbangan mereka. Walaupun bukan tutorial langkah demi langkah, kod lengkap boleh didapati di GitHub.

Matlamatnya adalah pembaca Reddit, meminimumkan perkakas dan kebergantungan. Kami akan menggunakan:

  • Litelement: Model komponen yang ringan dan mudah digunakan memanfaatkan komponen web.
  • @Vaadin/Router: penghala padat dengan pengalaman pemaju yang hebat.
  • @Pika/Web: Memudahkan pengurusan modul semasa pembangunan.
  • ES-DEV-SERVER: Pelayan Dev Langsung (walaupun mana-mana pelayan HTTP berfungsi).

Kami juga akan memanfaatkan piawaian penyemak imbas: modul ES, komponen web, peta import, penyimpanan KV, dan pekerja perkhidmatan.

Pemasangan Ketergantungan:

 npm i -s lit -element @vaadin/router
npm i -d @pika/web-dev-server

Tambahkan skrip postinstall ke package.json :

 "Skrip": {
  "Mula": "es-dev-server",
  "Postinstall": "Pika-Web"
}

PIKA: Melancarkan kebergantungan

Pika (oleh Fred K. Schott) memudahkan pembangunan web, memasang kebergantungan sebagai fail JavaScript individu dalam web_modules/ direktori. Ini memudahkan proses dan mengelakkan konfigurasi membina kompleks. Output menyerupai:

 <code>└─ web_modules/ ├─ lit-element.js └─ @vaadin └─ router.js</code>

Import Peta: Menyelesaikan penentu kosong

index.html kami termasuk peta import untuk mengendalikan penentu modul kosong:

<script type="importmap">
  {
    "imports": {
      "@vaadin/router": "/web_modules/@vaadin/router.js",
      "lit-element": "/web_modules/lit-element.js"
    }
  }
</script>
<reddit-pwa-app></reddit-pwa-app>

reddit-pwa-app.js :

 import {litelement, html} dari 'lit-element';

kelas redditpwaapp memanjangkan litelemen {
  render () {
    kembali html`<h1 id="Helo-Dunia"> Helo Dunia!</h1> `;
  }
}

customElements.define ('reddit-pwa-app', redditpwaapp);

Import Peta Menyelesaikan Isu Penentu Modul Bare, membolehkan keserasian penyemak imbas tanpa proses membina kompleks.

Pekerja Perkhidmatan: Fungsi Luar Talian

Untuk mengaktifkan akses luar talian, kami melaksanakan Pekerja Perkhidmatan ( sw.js ) yang didaftarkan di index.html :

 jika ('ServiceWorker' di Navigator) {
  window.adDeventListener ('LOAD', () => {
    Navigator.ServiceWorker.Register ('./ sw.js');
  });
}

Aset pra-cache pekerja perkhidmatan, memastikan fungsi luar talian. Pika memudahkan ini dengan menyediakan senarai aset yang jelas. (Lihat repo GitHub untuk butiran sw.js ).

Penyimpanan KV: Kegigihan Data Luar Talian

Untuk menyimpan jawatan di luar talian, kami menggunakan penyimpanan KV, modul terbina dalam berlapis di atas indexeddb. Ia menawarkan operasi tak segerak dan prestasi yang lebih baik ke atas LocalStorage. Polyfill digunakan untuk memastikan sokongan penyemak imbas yang lebih luas. (Lihat repo GitHub untuk butiran pelaksanaan).

Polyfilling dengan peta import

Polyfill penyimpanan KV ( kv-storage-polyfill ) dimasukkan dan diuruskan melalui peta import, menyediakan mekanisme sandaran jika penyimpanan KV asli tidak tersedia.

Kesimpulan

Projek ini menunjukkan membina PWA berfungsi dengan kebergantungan yang minimum, menonjolkan manfaat piawaian web moden dan pendekatan yang tidak membina. Walaupun alat binaan alternatif wujud, kaedah ini mengutamakan kesederhanaan dan kemudahan akses. Repositori GitHub menyediakan pangkalan lengkap untuk penerokaan lanjut. Maklum balas dan perbincangan dialu-alukan di Twitter (@passle_ atau @OpenWC) dan open-wc.org.

Penghargaan:

Terima kasih kepada Guy Bedford (Es-Module-shims), Luke Jackson ("Jangan membina aplikasi itu!"), Benny Powers, dan Lars den Bakker atas sumbangan mereka.

Atas ialah kandungan terperinci Pergi tanpa bangunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Pemotongan pelbagai baris dengan CSS tulenPemotongan pelbagai baris dengan CSS tulenApr 19, 2025 am 10:50 AM

Caranya dalam artikel ini masih cukup kemas dan pandai, tetapi ada cara yang kini standard untuk melakukan ini yang mungkin pertaruhan terbaik anda.

Perpustakaan animasi CSSPerpustakaan animasi CSSApr 19, 2025 am 10:46 AM

Terdapat banyak perpustakaan yang ingin membantu anda menghidupkan perkara di web. Ini tidak benar -benar perpustakaan yang membantu anda dengan sintaks atau

Input Warna: Menyelam dalam ke dalam perbezaan silang penyemak imbasInput Warna: Menyelam dalam ke dalam perbezaan silang penyemak imbasApr 19, 2025 am 10:40 AM

Dalam artikel ini, kita akan melihat struktur di dalam elemen, ketidakkonsistenan pelayar, mengapa mereka melihat cara tertentu dalam penyemak imbas tertentu, dan bagaimana

Menyekat elemen (pseudo) ke kotak sempadan ibu bapa 'Menyekat elemen (pseudo) ke kotak sempadan ibu bapa 'Apr 19, 2025 am 10:39 AM

Pernahkah anda mahu memastikan bahawa tiada elemen (pseudo) yang dipaparkan di luar kotak sempadan ibu bapa ' s? Sekiranya anda mempunyai masalah untuk membayangkan apa

Roti bakarRoti bakarApr 19, 2025 am 10:30 AM

Suatu hari, tiba -tiba, saya mula mendengar jenaka tentang roti bakar. Saya tidak tahu apa konteksnya. Saya menganggap beberapa rakan baru mula menceritakan jenaka roti bakar,

Melindungi laluan Vue dengan pengawal navigasiMelindungi laluan Vue dengan pengawal navigasiApr 19, 2025 am 10:29 AM

Pengesahan adalah bahagian yang diperlukan dari setiap aplikasi web. Ini adalah cara yang berguna di mana kita dapat memperibadikan pengalaman dan memuatkan kandungan khusus untuk a

Pendekatan yang berbeza untuk membuat animasi yang terhuyung -huyungPendekatan yang berbeza untuk membuat animasi yang terhuyung -huyungApr 19, 2025 am 10:28 AM

Unsur -unsur animasi, yang paling asas, agak mudah. Tentukan kerangka utama. Namakan animasi. Panggilnya pada elemen.

Hei, mari ' s Buat aplikasi kalendar berfungsi dengan jamStackHei, mari ' s Buat aplikasi kalendar berfungsi dengan jamStackApr 19, 2025 am 10:22 AM

Hei, mari ' s Buat aplikasi kalendar berfungsi dengan jamStack

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.