Пользовательский компонент панели вкладок подстраницы мини-программы WeChat

1. Предисловие:

Иногда мини-программы WeChat сталкиваются со слиянием кода, например, при переносе кода мини-программы B в мини-программу A, в результате чего B становится подфункцией подстраницы мини-программы A. Поскольку в самой мини-программе есть панель вкладок, оказывается, что панель вкладок есть и у B. На данный момент необходимо настроить нижнюю панель навигации панели вкладок для подфункции B. (Обратите внимание, что это не пользовательская панель вкладок для апплета WeChat. Нет необходимости устанавливать пользовательский атрибут в app.json, поскольку панель вкладок A не может быть изменена. Она просто добавляет дополнительную панель вкладок в модуль подфункции, что эквивалентно простой настройке компонента. .)
Вставьте сюда описание изображения

2. Реализация:

1.Реализация очень простая.Первый шаг - создать папку компонента в любом месте.Просто правильно прописываем путь к ссылке.Здесь я определяю две вкладки: "Главная" и "Моя":

wxml:

<view class="fix-btm">
	<view class="fix-btm-list" catchtap="switchTab"   data-url="点击需要跳转的tab页面路径">
		<view class="fix-btn-img">
			<image class="fix-btm-img" mode="widthFix" src="{
     
     {selected==0 ? '点击时图片路径' : '未点击时图片路径'}}" />
			<text  class="{
     
     {selected==0 ? 'active' : ''}}">首页</text>
		</view>
	</view>
	<view class="fix-btm-list" catchtap="switchTab"  data-url="点击需要跳转的tab页面路径">
		<view class="fix-btn-img">
			<image class="fix-btm-img" mode="aspectFit" src="{
     
     {selected==1 ? '点击时图片路径' : '未点击时图片路径'}}" />
			<text class="{
     
     {selected==1 ? 'active' : ''}}">我的</text>
		</view>
	</view>
</view>

wxss:


/* 底部栏 */
.fix-btm {
    
    
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 104.166rpx;
  background-color: #fff;
  box-shadow: 0 -2rpx 20rpx rgba(0, 0, 0, .1);
}
.fix-btm-list{
    
    
  flex:1;
  overflow: hidden;
}
.fix-btn-img{
    
    
  width: 100%;
  height: 100%;
  text-align: center;
  position: relative;
}
.fix-btm-img{
    
    
  width: 33.333rpx;
  height: 33.333rpx;
  display: block;
  padding-top: 19.444rpx;
  margin: 0 auto;
}
.fix-btm-list .fix-btn-img .red-dot,
.fix-btm-list .fix-btn-img .red-msg{
    
    
  width: 16.666rpx;
  height: 16.666rpx;
  z-index: 1000;
  position: absolute;
  top: 14rpx;
  transform: translateX(30rpx);
  background-color: #FF2929;
  border-radius: 20rpx;
}
.fix-btm-list .fix-btn-img .red-dot{
    
    
  right: 50%;
}
.fix-btm-list .fix-btn-img .red-msg{
    
    
  width: auto;
  height: auto;
  color: #fff;
  font-size: 16.666rpx;
  padding: 2rpx 8rpx;
  left: 50%;
  transform: translateX(50%);
}
.fix-btm-list text{
    
    
  font-size: 25rpx;
  color: #8A8A8A;
}
.fix-btm-list text.active{
    
    
  color: #0072FF;
}

js:

Component({
    
    
  /**
   * 组件的属性列表
   */
  properties: {
    
    
    selected: {
    
    
        type:Number,
        value:0
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    
    
    
  },

  /**
   * 组件的方法列表
   */
  methods: {
    
    
    switchTab(e) {
    
    
        let url  = e.currentTarget.dataset.url
      //这个方法如果调用,会导致tab bar闪动一下,这个是个bug
    /*   this.setData({
        selected: index
      }) */
      //  wx.switchTab({ url })
      wx.reLaunch({
    
    
        url
      })
    }

  }
})

json:

{
    
    
  "component": true,
  "usingComponents": {
    
    }
}
  1. Ссылочные компоненты, ссылка на компонент панели вкладок на главной странице и моей странице:

Введение в json-файл «Домашняя страница»:

{
    
    
  "usingComponents": {
    
    
    "tabBar":"组件文件路径"
  },
}

Wxml-файл «Домашняя страница» представлен и написан внизу:

<tabBar selected="0"></tabBar>

«Мой» json-файл импортируется:

{
    
    
  "usingComponents": {
    
    
    "tabBar":"组件文件路径"
  },
}

«Мой» файл wxml импортируется и записывается внизу:

<tabBar selected="1"></tabBar>

3. Заключение:

886, следующее путешествие будет очень продуктивным.


Адрес склада My Bilibili Space Gitee: Исходный код всех спецэффектов
Другие статьи:
~ Следуйте за мной, чтобы увидеть больше простых творческих спецэффектов:
текстовый эффект дыма html+css+js
объемное отражение загрузка специального эффекта html+css
пузырь плавающий фон специальный эффект html+css
простой специальный эффект часов html+css+js
кнопка в стиле киберпанк html+css
имитация NetEase Cloud официальный сайт изображение карусели html+css+js
волна воды загрузка анимация html+css
панель навигации прокрутка эффект градиента html+css+js
перелистывание страниц книги html+css
3D-трехмерный фотоальбом html+css
эффект неоновой доски для рисования html+css+js
обратите внимание на некоторую сводку атрибутов CSS (1)
сводную заметку по Sass
... подождите и
перейдите на мою домашнюю страницу, чтобы увидеть больше ~

рекомендация

отblog.csdn.net/luo1831251387/article/details/129811356
рекомендация