微信小程序用vant自定义tabbar页面并跳转相应页面

这篇具有很好参考价值的文章主要介绍了微信小程序用vant自定义tabbar页面并跳转相应页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.前置安装

步骤一 安装 vant 组件库

npm i @vant/weapp -S --production

下载完后要npm构建才能使用

步骤二 修改 app.json

将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱

步骤三 修改 project.config.json

开发者工具创建的项目,miniprogramRoot 默认为 miniprogrampackage.json 在其外部,npm 构建无法正常工作。

需要手动在 project.config.json 内添加如下配置,使开发者工具可以正确索引到 npm 依赖的位置。

{
  ...
  "setting": {
    ...
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./miniprogram/"
      }
    ]
  }
}

注意: 由于目前新版开发者工具创建的小程序目录文件结构问题,npm构建的文件目录为miniprogram_npm,并且开发工具会默认在当前目录下创建miniprogram_npm的文件名,所以新版本的miniprogramNpmDistDir配置为’./'即可
vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

步骤四 构建 npm

打开微信开发者工具,点击 工具 -> 构建 npm,并勾选 使用 npm 模块 选项,构建完成后,即可引入组件。

vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

微信小程序用vant自定义tabbar并跳转相应页面

vant官网Tabbar部分 结合 微信小程序官网文档

1. 配置信息

  • app.json 中的 tabBar 项指定 custom 字段,同时其余 tabBar 相关配置也补充完整。
  • 所有 tab 页的 json 里需声明 usingComponents 项,也可以在 app.json 全局开启。

示例:

{
 "tabBar": {
		"custom": true,
		"color": "#000000",
		"selectedColor": "#000000",
		"backgroundColor": "#000000",
		"list": [
			{
				"pagePath": "pages/home/home"
			},
			{
				"pagePath": "pages/my/my"
			},
			{
				"pagePath": "pages/setting/setting"
			}
		]
	},
   //全局组件配置 下面是vant的组件导入
  "usingComponents": {
    "van-button": "@vant/weapp/button/index",
    "van-tabbar": "@vant/weapp/tabbar/index",
    "van-tabbar-item": "@vant/weapp/tabbar-item/index"
  },
}

vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

2. 添加 tabBar 代码文件

在根目录下创建文件夹custom-tab-bar

文件名:

custom-tab-bar/index.js
custom-tab-bar/index.json
custom-tab-bar/index.wxml
custom-tab-bar/index.wxss

我是修改为index了,也可以就用上面的

vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

3. 编写 tabBar 代码

用自定义组件的方式编写即可,该自定义组件完全接管 tabBar 的渲染。另外,自定义组件新增 getTabBar 接口,可获取当前页面下的自定义 tabBar 组件实例。

4 .tabbar页面实现跳转

4.1 在custom-tab-bar/index.wxml中:
<van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item wx:for="{{ list }}" wx:key="index" icon="{{ item.icon }}"  >
    {{item.text}}
  </van-tabbar-item>
</van-tabbar>
4.2 在custom-tab-bar/index.js中

url要是相对应的文件位置,注意加 /

Component({
  data: {
    active: '0',
    list: [{
        icon: 'home-o',
        text: '主页',
        name: 'home',
        url: '/pages/home/home'
      },
      {
        icon: 'search',
        text: '我的',
        name: 'my',
        url: '/pages/my/my'
      },  
      {
        icon: 'setting-o',
        text: '设置',
        name: 'setting',
        url: '/pages/setting/setting'
      }
    ]
  },

  methods: {
    onChange(event) {
      this.setData({
        active: event.detail
      });
      wx.switchTab({
        url: this.data.list[event.detail].url,
      });
    },

    init() {
      const page = getCurrentPages().pop();
      this.setData({
        active: this.data.list.findIndex(item => item.url === `/${page.route}`)
      });
    }
  }
});
4.3 注意要在pages中要有这些页面,在app.json中配置

vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

4.4 在每个页面的onShow() 生命周期函数使用init函数

vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序

my页面 setting页面一样要添加!

最后效果:
vant 小程序tabbar 无法跳转,前端,# 小程序,微信小程序,小程序文章来源地址https://www.toymoban.com/news/detail-815190.html

到了这里,关于微信小程序用vant自定义tabbar页面并跳转相应页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序自定义tabBar以及图标-使用vant-weapp

    微信官方文档介绍 官方文档 1、在小程序根目录下创建custom-tab-bar文件夹,并创建以下文件。 custom-tab-bar/index.js custom-tab-bar/index.json custom-tab-bar/index.wxml custom-tab-barr/index.wxss 2、修改custom-tab-bar/index.js(清除初始化的内容) 3、修改custom-tab-bar/index.json(引入vant 组件) 4、修改custom-tab-

    2024年02月11日
    浏览(44)
  • 微信小程序中如何携带参数跳转到tabBar页面

    在小程序中使用了tabBar组件之后就不能用wx.navigateTo跳转到tabBar页面了 , 能跳转到tabBar页面的方法有以下两种   但是使用第一种方法时,会因为这种方法在路径后不能携带参数,所以行不通 那么就只能用第二种方法 , 用wx.reLaunch进行跳转 , 地址后跟上自己想要的参数 , 或者用wx

    2024年02月11日
    浏览(55)
  • 微信小程序如何跳转到tabBar页面、如何携带参数过去

    微信底部如果用的是系统自动的 tabbar ,也就是在 app.json 中配置的底部路由: 需要注意以下两个问题: 比如,个人中心是 tabBar ,使用 navigator url=\\\"/pages/me/me\\\"个人中心/navigator 跳转时,无法跳转,也不会给任何提示。 如果在普通标签上使用 wx.navigateTo 跳转到任意 tabBar 页面,则

    2024年02月05日
    浏览(55)
  • 微信小程序页面的跳转和导航的配置和vant组件

    结论: navigateTo ,  redirectTo  只能打开非 tabBar 页面。 switchTab  只能打开 tabBar 页面。 reLaunch  可以打开任意页面。 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。 调用页面路由带的参数可以在目标页面的 onLoad 中获取。 (1)当我们使用 redirectTo跳

    2024年02月09日
    浏览(41)
  • 定义tabbar,以及解决原生微信小程序使用vant的tabbar的bug(点击俩次图标才正确激活)

    详细步骤,可以参考小程序官方给出的文档: https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html 在 app.json 中的 tabBar 项指定 custom 字段 在代码根目录下添加入口文件: custom-tab-bar用自定义组件的方式编写即可,用自定义组件的方式编写即可,该自定义组件完全接

    2024年04月14日
    浏览(29)
  • 微信小程序子页面自定义tabbar组件

    有时候微信小程序会遇到代码合并,就比如把B小程序代码迁移到A小程序,要使得B作为A小程序的一个子页面子功能。因为本身小程序都有tabbar,原来B也有,这时候就要给B子功能自定义一个tabbar底部导航栏。(注意,这个不是微信小程序自定义tabBar,不需要app.json中设置一个

    2024年02月08日
    浏览(39)
  • iOS-自定义Intent及ShortCut,能通过快捷指令唤醒APP并跳转到指定页面

    创建完成后,在intents文件中勾选以下target,否则在扩展里,无法访问到前面创建的Intent类 编译程序,Xcode 会自动生成对应的类,我这里的话会生成 LaunchAppIntent 类,下面需要使用 引入上述生成的文件,并写入代理,如果之前未勾选target是无法引入的 在代理中写入,以及点击

    2024年01月23日
    浏览(45)
  • 原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

    一、声明:在导入使用vant (tabbar)组件的时候,发现通过点击切换的方法来更改active的方法,会出现图标没用及时对应上,需要第二次点击才对应上的问题。 先使用npm引入vant组件库 1.第一步:在资源管理器下方空白处选择”在外部终端窗口打开“ 2.第二步:使用命令初始

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包