vue学习笔记---tap切换配置(vue-router)

本文介绍了一个使用 Vue 和 Vue Router 构建的简单电商应用案例,包括商品、评论和商家三个页面的路由配置与实现方式。通过该案例可以了解 Vue Router 的基本用法,如组件懒加载、路由守卫等。




商品


评论


商家





(main.js里面的配置)
import Vue from ‘vue’
import App from ‘./App’
import goods from ‘components/goods/goods’
import ratings from ‘components/ratings/ratings’
import seller from ‘components/seller/seller’
import VueRouter from ‘vue-router’Vue.use(VueRouter)

Vue.use(VueRouter)//实例化vueRouter
// 将App.vue组件扩展接口给app,实际上就是将APP继承给app–>
let app = Vue.extend(App)
// 实例化路由,并且将点击链接后类名简写为active–>
let router = new VueRouter({
linkActiveClass: ‘active’
})
// 设置路由地图–>
router.map({
‘/’: {
component: goods
},
‘/goods’: {
component: goods
},
‘/ratings’: {
component: ratings
},
‘/seller’: {
component: seller
}
})
// 启动路由将 app组件挂到html#app下面–>
router.start(app, ‘#app’)

<template>
  <div>
    <v-header :seller="seller"></v-header>
    <div class="tab border-1px">
      <div class="tab-item">
        <a v-link="{path:'/goods'}">商品</a>
      </div>
      <div class="tab-item">
        <a v-link="{path:'/ratings'}">评论</a>
      </div>
      <div class="tab-item">
        <a v-link="{path:'/seller'}">商家</a>
      </div>
    </div>
    <router-view :seller="seller" keep-alive></router-view>
  </div>
</template>
在 Taro 框架中,Vue-Router 并不直接适用于 Taro 的路由系统。Taro 提供了自己的路由机制,与 Vue-Router 的实现方式不同。然而,可以结合 Taro 的官方文档和 Vue 的思想来模拟类似 Vue-Router 的功能[^1]。以下是关于如何在 Taro 中配置和使用类似于 Vue-Router 的页面导航方法的详细说明。 ### 1. Taro 的路由基础 Taro 的路由是基于小程序的路由机制设计的,支持页面跳转、参数传递等功能。Taro 的路由配置通常通过 `taro.config.js` 文件中的 `pages` 字段定义[^2]。例如: ```javascript module.exports = { pages: [ 'pages/index/index', // 首页 'pages/about/about' // 关于页面 ] }; ``` ### 2. 页面导航方法 Taro 提供了内置的 API 来实现页面导航,例如 `Taro.navigateTo` 和 `Taro.switchTab`。这些方法类似于 Vue-Router 中的 `<router-link>` 功能[^3]。以下是一些常用的导航方法: - **跳转到新页面**: ```javascript Taro.navigateTo({ url: '/pages/about/about' }); ``` - **返回上一页**: ```javascript Taro.navigateBack(); ``` - **切换 Tab 页面**: ```javascript Taro.switchTab({ url: '/pages/index/index' }); ``` ### 3. 在组件中实现导航 类似于 Vue-Router 的 `<router-link>` 和 `<router-view>`,可以在 Taro 的组件中通过绑定事件实现导航功能。例如: ```vue <template> <view> <button @tap="goToHome">Home</button> <button @tap="goToAbout">About</button> <!-- 类似于 <router-view> 的占位符 --> <block v-if="currentRoute === 'home'"> <text>Home Content</text> </block> <block v-if="currentRoute === 'about'"> <text>About Content</text> </block> </view> </template> <script> export default { data() { return { currentRoute: 'home' // 当前路由状态 }; }, methods: { goToHome() { this.currentRoute = 'home'; Taro.navigateTo({ url: '/pages/index/index' }); }, goToAbout() { this.currentRoute = 'about'; Taro.navigateTo({ url: '/pages/about/about' }); } } }; </script> ``` ### 4. 自定义路由管理器 如果需要更复杂的路由管理,可以创建一个自定义的路由管理器来模拟 Vue-Router 的行为。例如: ```javascript // router.js const routes = { home: '/pages/index/index', about: '/pages/about/about' }; function navigateTo(routeName) { const url = routes[routeName]; if (url) { Taro.navigateTo({ url }); } else { console.error(`Route ${routeName} not found`); } } export { navigateTo }; ``` 然后在组件中使用: ```javascript import { navigateTo } from './router'; export default { methods: { goToHome() { navigateTo('home'); }, goToAbout() { navigateTo('about'); } } }; ``` ### 5. 路由参数传递 类似于 Vue-Router 的动态路由参数,Taro 支持通过 URL 参数传递数据。例如: ```javascript Taro.navigateTo({ url: '/pages/detail/detail?id=123&name=example' }); ``` 在目标页面中可以通过 `this.$router.params` 获取参数[^4]。 ```javascript onLoad(options) { console.log(options.id); // 输出 "123" console.log(options.name); // 输出 "example" } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值