Dengan pembangunan berterusan teknologi bahagian hadapan, Vue, sebagai rangka kerja JavaScript sumber terbuka yang popular, semakin ramai orang mula menggunakannya untuk membina aplikasi bahagian hadapan mereka sendiri. Walau bagaimanapun, semasa proses pembangunan Vue, sesetengah orang mungkin menghadapi lompatan penghalaan yang tidak sah. Artikel ini akan meneroka sebab mengapa lompatan penghalaan Vue tidak berguna dan penyelesaiannya.
Sebelum menggunakan Vue-Router, anda perlu memasangnya terlebih dahulu dan memperkenalkan laluan ke dalam projek. Jika laluan tidak diimport dengan betul, lompatan laluan secara semula jadi akan menjadi tidak sah. Untuk menggunakan fungsi yang disediakan oleh Vue-Router, anda perlu memasangnya melalui npm atau yarn, rujuk dan buat contoh Vue-Router dalam projek. Berikut ialah contoh kod untuk memperkenalkan Vue-Router:
import Vue from 'vue' import VueRouter from 'vue-router' // 在Vue实例中使用VueRouter插件 Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', // 使用HTML5 History模式,去掉URL中的#号 routes: [ { path: '/', // 路由路径 component: Home // 组件,此处是Home组件 }, { path: '/about', component: About }, // ... ] }) // 在Vue实例中添加router选项 new Vue({ router, render: h => h(App) }).$mount('#app')
Dalam kod permulaan penghalaan, kita perlu menentukan hubungan yang sepadan antara laluan penghalaan dan komponen supaya ia boleh melompat dengan betul apabila mengklik pautan. Jika maklumat penghalaan tidak betul atau tiada, lompatan penghalaan akan menjadi tidak sah. Anda boleh menyemak sama ada laluan aplikasi dimulakan dengan betul melalui jadual cincang laluan.
Jika lompatan masih tidak dapat dilakukan selepas laluan diperkenalkan, maka kita boleh cuba lompat laluan secara manual. Lompatan manual membolehkan contoh Vue menetapkan semula laluan secara dinamik selepas pemaparan halaman selesai untuk mencapai tujuan lompatan.
Kod sampel untuk penghalaan lompatan manual adalah seperti berikut:
export default { methods: { jumpTo(path) { this.$router.push({ path }) } } }
Tentukan kaedah jumpTo
dalam komponen Vue sedia ada, dan laksanakan lompatan ke sasaran melalui penghalaan kaedah. push
gagal, maka anda perlu menyemak sama ada teg router-link
digunakan dengan betul. router-link
router-link
ialah arahan lompat laluan yang disediakan oleh Vue-Router Anda boleh menggunakannya untuk melompat ke laluan sasaran dengan mudah. Walau bagaimanapun, apabila menggunakan router-link
, mungkin juga terdapat masalah kegagalan lompatan. Pada masa ini, anda perlu menyemak sama ada penggunaan router-link
adalah betul. router-link
: router-link
<router-link to="/user">用户中心</router-link>
's router-link
atribut menentukan laluan untuk melompat ke, dan nilainya hendaklah penunjuk ke laluan sasaran Laluan relatif atau laluan mutlak. to
masih tidak boleh diubah hala, anda boleh mempertimbangkan untuk menggunakan teg router-link
asli dan bukannya a
, atau semak perbezaan antara komponen router-link
dan Versi Vue-Router Isu keserasian. router-link
, beforeEach
dan beforeResolve
Pengawal ini akan dicetuskan sebelum, antara dan selepas penukaran laluan. Jika pemasaan pencetus dan logik pemprosesan pengawal tidak dapat dikonfigurasikan dengan betul, lompatan laluan mungkin gagal. afterEach
router.beforeEach((to, from, next) => { if (to.path === '/login') { next() return } // 判断用户是否登录 if (store.state.isLogin) { next() return } next('/login') })
, maka ia akan melompat terus tanpa sebarang pemprosesan. Jika pengguna tidak log masuk, kemudian lompat ke halaman log masuk. /login
dan konfigurasi pengawal navigasi. Jika anda menghadapi masalah berkaitan lompatan penghalaan lain, anda boleh mencuba penyelesaian yang berbeza berdasarkan situasi sebenar. router-link
Atas ialah kandungan terperinci Bincangkan sebab dan penyelesaian mengapa lompatan penghalaan Vue tidak berguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!