찾다
위챗 애플릿미니 프로그램 개발미니 프로그램 개발을 위한 내비게이션 코드 구현 Jiugongge 인터페이스

이 기사에서는 주로 소규모 프로그램 개발의 실제 사례를 소개합니다. Jiugongge 인터페이스에 대한 탐색 코드 구현에 관심이 있는 사람들은 이에 대해 배울 수 있습니다.

위챗에서 개발된 미니 프로그램은 모바일 인터페이스로 보다 편리하게 사용하기 위해 9각형 그리드 인터페이스를 탐색으로 사용하고 싶을 때가 많습니다.

간단히 생각하면 주공 그리드는 3행 3열로 되어 있는데, 행을 하나의 단위로 보고 각 행을 3열로 나누면 괜찮을까요? 연습해 봅시다.

먼저 9개의 그리드 데이터 생성을 고려해 보겠습니다. 각 그리드에는 점프를 용이하게 하기 위한 아이콘, 제목 및 경로가 필요하므로 이제 9개의 페이지가 있으므로 하나를 정의합니다. -차원배열그렇습니다. 더 나은 후속 구성을 위해 이 배열을 경로js 파일로 분리한 다음 index.js 페이지에서 참조하고 경로를 인덱스 디렉터리에 넣습니다.

var PageItems = 
 [ 
  { 
   text: '格子1', 
   icon: '../../images/c1.png', 
   route: '../c1/c1', 
  }, 
  { 
   text: '格子2', 
   icon: '../../images/c2.png', 
   route: '../c2/c2', 
  }, 
   { 
   text: '格子3', 
   icon: '../../images/c3.png', 
   route: '../c3/c3', 
  }, 
  { 
   text: '格子4', 
   icon: '../../images/c4.png', 
   route: '../c4/c4', 
  }, 
  { 
   text: '格子5', 
   icon: '../../images/c5', 
   route: '../c5/c5', 
  }, 
  { 
   text: '格子6', 
   icon: '../../images/c6.png', 
   route: '../c6/c6', 
  }, 
  { 
   text: '格子7', 
   icon: '../../images/c7.png', 
   route: '../c7/c7', 
  }, 
  { 
   text: '格子8', 
   icon: '../../images/c8', 
   route: '../c8/c8', 
  }, 
  { 
   text: '格子9', 
   icon: '../../images/c9.png', 
   route: '../c9/c9', 
  } 
 ]; 
module.exports = { 
 PageItems: PageItems 
}

index.js 페이지에서는 Routes.js를 참조한 다음 PageItems 데이터를 가져옵니다. 하지만 PageItems는 1차원 배열이므로 이전에는 행 1개와 열 3개를 하나의 행으로 사용하는 줄 알았습니다. 1차원 배열을 재결합하는 가장 직접적인 방법은 배열을 생성하는 것입니다. 각 배열 요소에는 3개의 요소만 포함된 1차원 배열이 포함됩니다.

//index.js 
//获取应用实例 
var app = getApp() 
var routes = require('routes'); 
Page({ 
 data: { 
  userInfo: {}, 
  cellHeight: '120px', 
  pageItems: [] 
 }, 
 //事件处理函数 
 onLoad: function () { 
  var that = this 
  console.log(app); 
  //调用应用实例的方法获取全局数据 
  app.getUserInfo(function (userInfo) { 
   wx.setNavigationBarTitle({ 
    title: '全新测试追踪系统-' + userInfo.nickName, 
    success: function (res) { 
     // success 
    } 
   }) 
   that.setData({ 
    userInfo: userInfo 
   }) 
   var pageItems = []; 
   var row = []; 
   var len = routes.PageItems.length;//重组PageItems 
   len = Math.floor((len + 2) / 3) * 3; 
   for (var i = 0; i < len; i++) { 
    if ((i + 1) % 3 == 0) { 
     row.push(indexs.PageItems[i]); 
     pageItems.push(row); 
     row = []; 
     continue; 
    } 
    else { 
     row.push(indexs.PageItems[i]); 
    } 
   } 
   wx.getSystemInfo({ 
    success: function (res) { 
     var windowWidth = res.windowWidth; 
     that.setData({ 
      cellHeight: (windowWidth / 3) + &#39;px&#39; 
     }) 
    }, 
    complete: function () { 
     that.setData({ 
      pageItems: pageItems 
     }) 
    } 
   }) 
  }) 
 } 
})

index.wxml에서는 인터페이스를 레이아웃하기 위해 각 그리드는 동일하지만 데이터가 다르기 때문에 템플릿을 사용하여 표현하려고 생각했습니다. 이를 위해 먼저 셀 템플릿 표면 cell.wxml을 만듭니다.

<template name="cell"> 
 <navigator url="{{route}}" class="pages-item" style="height:{{cellHeight}}"> 
  <view class="{{text==null||text.length==0?&#39;pages-icon-wrapper-no-bg&#39;:&#39;pages-icon-wrapper&#39;}}" > 
   <image src="{{icon}}" class="pages-icon"></image> 
  </view> 
  <view class="pages-text-wrapper"> 
   <text class="pages-text">{{text}}</text> 
  </view> 
 </navigator> 
</template>

여기서 외부에서 전달된 데이터가 두 개의 중괄호로 묶여 내부에서 간단한 논리적 판단이 이루어질 수 있음을 알 수 있습니다. 더 나은 프레젠테이션을 위해. 예를 들어 text==null인 경우 배경이 비어 있는 그리드를 표시하고 싶고, 데이터가 있는 경우 배경이 있는 그리드를 표시하고 싶으므로

코드는 다음과 같습니다.

"{{text==null||text.length==0?&#39;pages-icon-wrapper-no-bg&#39;:&#39;pages-icon-wrapper&#39;}}".

또 다른 점은 이 인터페이스 파일을 템플릿으로 사용하기 때문에 템플릿이 참조되는 위치에서 호출을 식별할 수 있도록 템플릿 태그로 래핑하고 이름을 지정해야 한다는 것입니다. 이제 index.wxml

<!--index.wxml--> 
<import src="cell.wxml" /> 
<view class="pages-container"> 
 <scroll-view scroll-y="true" class="pages-wrapper"> 
  <view wx:for="{{pageItems}}" wx:key="{{text}}"> 
   <view class="pages-row"> 
    <template is="cell" data="{{...item[0],cellHeight}}" /> 
    <template is="cell" data="{{...item[1],cellHeight}}" /> 
    <template is="cell" data="{{...item[2],cellHeight}}" /> 
   </view> 
  </view> 
 </scroll-view> 
</view>

에서 이 템플릿을 참조합니다. 템플릿은 가져오기를 사용하여 참조되며 템플릿은 호출이 이루어지는 곳에서 사용됩니다. 여기서 는 cell.wxml에서 이름을 지정합니다. item[0], item[1], item[2]는 루프를 통해 전달된 데이터이고, cellHeight는 index.js의 데이터에 저장된 데이터입니다. 데이터가 템플릿에 전달되면 프레임워크는 이를 필드, 즉 키-값 쌍의 형태로 확장하므로 cell.wxml 파일을 다시 보면 알 수 있습니다. 키는 데이터로 직접 사용됩니다. 데이터를 인터페이스에 제시한 후 이를 일치시키기 위한 특정 스타일이 필요합니다. index.wxss 코드는 다음과 같습니다.

/**index.wxss**/ 
.pages-container { 
 height: 100%; 
 display: flex; 
 flex-direction: column; 
 box-sizing: border-box; 
 padding-top: 10rpx; 
 padding-bottom: 10rpx; 
} 
.pages-title-bg { 
 width: 100%; 
} 
.pages-wrapper { 
} 
.pages-row { 
 width: 100%; 
 display: flex; 
 flex-direction: row; 
 justify-content: space-around; 
} 
.pages-item { 
 position: relative; 
 padding: 10rpx; 
 width: 33%; 
 background-color: #fff; 
 border: #ddd solid 1px; 
} 
.pages-icon-wrapper { 
 display: flex; 
 justify-content: space-around; 
 align-items: center; 
 margin: 10rpx; 
 border-radius: 30%; 
 height: 75%; 
 background:#00CD0D; 
} 
.pages-icon-wrapper-no-bg { 
 display: flex; 
 justify-content: space-around; 
 align-items: center; 
 margin: 10rpx; 
 height: 75%; 
} 
.pages-icon { 
 width: 100rpx; 
 height: 100rpx; 
} 
.pages-text-wrapper { 
 text-align: center; 
} 
.pages-text { 
 font-weight: bolder; 
}

효과는 아래와 같습니다

미니 프로그램 개발을 위한 내비게이션 코드 구현 Jiugongge 인터페이스

템플릿의 navigator 요소를 사용하여 그리드를 표현하므로 각 그리드를 자연스럽게 탐색할 수 있습니다.

위 내용은 미니 프로그램 개발을 위한 내비게이션 코드 구현 Jiugongge 인터페이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구