ThinkPHP ialah rangka kerja pembangunan PHP yang sangat popular, yang direka untuk pembangunan pesat aplikasi web. Apabila membangunkan aplikasi web melalui ThinkPHP, kami mungkin perlu mencipta laman web rasmi satu halaman. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP untuk menyediakan tapak web rasmi satu halaman.
1. Apakah aplikasi satu halaman?
Aplikasi satu halaman, dalam bahasa Inggeris, adalah Aplikasi Satu Halaman, atau singkatannya SPA adalah berdasarkan teknologi seperti Ajax HTML5, dan memuatkan sebahagian kandungan halaman secara dinamik untuk mengoptimumkan pengalaman pengguna aplikasi web. Tidak seperti aplikasi tradisional, aplikasi satu halaman hanya mengandungi satu halaman HTML, dan kandungan halaman dimuatkan secara dinamik melalui JavaScript untuk mencapai persembahan kandungan dan bertukar antara halaman.
2. Cipta aplikasi satu halaman
Terdapat banyak cara untuk mencipta aplikasi satu halaman dalam ThinkPHP, dan artikel ini akan memperkenalkan salah satu daripadanya.
1 Cipta pengawal
Dalam ThinkPHP, semua logik perniagaan dilaksanakan dalam pengawal. Oleh itu, kita perlu mencipta pengawal aplikasi halaman tunggal dalam pengawal aplikasi. Kami mencipta pengawal yang dipanggil SinglePageController.
<?php namespace app\index\controller; use think\Controller; class SinglePageController extends Controller { public function index() { return view(); } }
Dalam kod di atas, kami mentakrifkan kelas SinglePageController yang mewarisi daripada kelas Pengawal dan mentakrifkan kaedah indeks, yang akan melaksanakan operasi pemuatan halaman.
2. Cipta paparan
Kami perlu mencipta paparan aplikasi satu halaman melalui enjin paparan ThinkPHP. Enjin paparan ThinkPHP membolehkan kami membenamkan kod PHP dalam HTML untuk mencapai penggunaan semula paparan dan pemisahan halaman.
<!-- singlepage.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>单页应用</title> <script src="//cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> </head> <body> <div id="nav"> <ul> <li><a href="#home">首页</a></li> <li><a href="#about">关于我们</a></li> <li><a href="#product">产品介绍</a></li> <li><a href="#contact">联系我们</a></li> </ul> </div> <div id="content"></div> <script type="text/javascript"> $(document).ready(function(){ $(window).bind('hashchange', function() { var url = window.location.hash.slice(1); $('#content').load(url + '.html'); }); $(window).trigger('hashchange'); }); </script> </body> </html>
Dalam kod di atas, kami mencipta bar navigasi dengan nav id dan kawasan kandungan dengan kandungan id. Dan kami telah mengikat peristiwa pertukaran cincang dalam JavaScript Setiap kali cincangan berubah (iaitu, apabila pautan bar navigasi berubah), kami akan memuatkan halaman HTML yang sepadan ke dalam kawasan kandungan melalui Ajax.
Nota: Kandungan aplikasi satu halaman hendaklah terdiri daripada berbilang halaman HTML, bukannya semua dipaparkan pada satu halaman pada masa yang sama.
3. Tentukan peraturan penghalaan
Memandangkan kelas SinglePageController kami memaparkan paparan aplikasi satu halaman melalui kaedah indeks, kami perlu mentakrifkan peraturan penghalaan yang dinamakan halaman tunggal dalam peraturan penghalaan:
<?php use think\Route; // 单页应用路由 Route::rule('singlepage/:id','index/SinglePage/index');
Dalam kod di atas, kami mentakrifkan peraturan penghalaan bernama halaman tunggal dan lulus id sebagai parameter kepada kaedah indeks kelas SinglePageController.
3. Ringkasan
Aplikasi satu halaman ialah satu bentuk aplikasi web moden yang penting sebagai rangka kerja web yang biasa digunakan, ThinkPHP menyediakan banyak kaedah yang mudah untuk pengguna mencipta aplikasi satu halaman. Artikel ini memperkenalkan kaedah untuk mencipta aplikasi satu halaman dengan mencipta pengawal dan pandangan serta mentakrifkan peraturan penghalaan. Jika anda berasa terinspirasi oleh perkara ini, anda boleh mendalami potensi aplikasi dengan mempelajari lebih lanjut tentang ThinkPHP.
Atas ialah kandungan terperinci Bagaimana untuk menyediakan satu halaman dalam thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!