nvue是uni-app的官方視圖層擴展,基于Vue.js核心,針對跨平臺的多端開發進行了自定義擴展和優化。其中,nvue的跳轉與Vue的跳轉有所不同,本篇文章將著重介紹這兩種跳轉方法。
nvue的跳轉方式分為導航跳轉和位置跳轉。其中,導航跳轉適用于需要在不同頁面間切換的場景,而位置跳轉則用于更加自由的頁面傳參和跳轉。
// 導航跳轉
uni.navigateTo({
url: 'pages/home/home'
})
// 位置跳轉
uni.navigateTo({
url: 'pages/goods/goods?id=123&name=iphone7'
})
而Vue中的跳轉方式則一般采用路由方式實現。Vue的路由是采用JavaScript實現的單頁應用程序,可以通過router實現頁面的切換和傳參。
// 定義路由規則
const routes = [
{ path: '/home', component: Home },
{ path: '/goods/:id', component: Goods }
]
// 創建router實例
const router = new VueRouter({
routes
})
// 跳轉
router.push('/home')
router.push({ path: '/goods/123', query: { name: 'iphone7' }})
從上述代碼可以看出,Vue的跳轉是通過router實例和路由規則來實現的。而nvue則是通過uni-app的原生跳轉方案實現的。
除此之外,兩者在傳參方面也有所不同。Vue的傳參一般是通過query傳遞,而nvue則可以采用KV傳參的方式進行傳參。
// Vue
router.push({ path: '/goods/123', query: { name: 'iphone7' }})
// nvue
uni.navigateTo({
url: 'pages/goods/goods?id=123&name=iphone7'
})
總體而言,nvue和Vue跳轉的方式均有各自的特點,開發者在選擇時需要根據實際場景進行選擇。但無論哪種方式,實現頁面跳轉的基本思路是相通的,即定義跳轉規則和傳遞參數。