微信 程序 使用 自定義 組件 導航 實現 當前 頁面 简体版
原文   原文鏈接

最近開發小程序,須要作一個導航,導航能夠經過template寫出來,可是這個項目須要在導航中處理一些邏輯,作成組件更方便些。
image.pnggit

首先新建header文件夾,裏面新建對應的js、json、wxml、wxss文件。github

<!-- 公共頭部組件 -->
<view class='headers'>
     <navigator open-type="redirectTo" class='logo' url="../index/index" hover-class="none">
        <image src="../../assets/img/logo2.png" mode="widthFix"></image>
     </navigator>
    <view class="phone_nav_switch" bindtap="controlNav">
        <view class="iconfont icon-daohang" hidden="{{navIsShow}}"></view>
        <view class="iconfont icon-guanbi" hidden="{{!navIsShow}}"></view>
    </view>
    <view class="nav">
        <view class="shadow {{navIsShow ? 'active':''}}" bindtap="controlNav"></view>
        <view class="bg {{navIsShow ? 'active':''}}">
            <view class='con' wx:for="{{navs}}" wx:key="item.url">
                 <navigator open-type="redirect" data-index="{{index}}" class="{{index === navActive ? 'active' : ''}}" url="{{item.url}}" hover-class="none">
                    {{item.text}}
                 </navigator>
            </view>
        </view>
    </view>
    <!-- 返回頂部 -->
    <view class="backTop" bindtap="goTop" hidden='{{floorstatus}}'>
        <text class="icon iconfont icon-iconfonticontrianglecopy"></text>
    </view>

</view>

header.js裏的導航數據json

/**
   * 組件的屬性列表
   */
  properties: {
    // 當前導航高亮
    navActive: {
      // 類型
      type: Number,
      // 默認值
      value: 0
    }
  },

  data: { 
    // 導航開關 
    navIsShow: false,
    currentIndexNav: 0,
    // floorstatus: false,
    navs: [
      {
        text: '網站首頁',
        url: '../index/index'
      },
      {
        text: '招商加盟',
        url: '../join/join'
      },
      {
        text: '關於煮田',
        url: '../about/about'
      },
      {
        text: '煮田美食',
        url: '../food/food'
      },
      {
        text: '最新資訊',
        url: '../news/news'
      },
      {
        text: '門店查詢',
        url: '../search/search'
      },
      {
        text: '聯繫咱們',
        url: '../contact/contact'
      },
      {
        text: '視頻列表',
        url: '../videoItem/videoItem'
      }

    ]
  },

導航放在class="nav"中,header.json文件中寫入小程序

{
  "component": true
}

須要引入組件的頁面的json文件寫入,好比index.jsonxss

{
  "component": true,
  "usingComponents": {
    "header":"../header/header"
  }
}

而後在index.wxml引入組件,navActive是傳給組件的值,目的是爲了對應導航組件內的導航每一項的index,好比首頁的index爲0,那我在首頁內定義的navActive就是0,ide

<!-- 頭部組件 -->
    <view class='header'> 
        <!-- 導航高亮傳值 -->
         <header navActive='0'></header>
    </view>

image.png

image.png
image.png
image.png
若是相等當前頁面就會高亮
image.png
須要在在heaer.js設置navActive的類型,經過上面的操做,我是可以實現當前頁面導航高亮的
image.pngimage.png
但願能幫到須要的人,若是以爲我上面寫的不清楚的話,這是個人github
https://github.com/mazixiao/w...
,這個是我作好了的網站

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息