ホームページ >ウェブフロントエンド >uni-app >uniapp を使用してマルチレベルのメニュー機能を開発する方法
uniapp を使用してマルチレベル メニュー機能を開発する方法
モバイル アプリケーション開発では、より複雑な機能やインタラクティブなエクスペリエンスを実現するために、マルチレベル メニューを使用することが必要になることがよくあります。クロスプラットフォーム開発フレームワークとして、uniapp は開発者がマルチレベルのメニュー機能を迅速に実装するのに役立ちます。この記事では、uniapp を使用して多階層メニュー機能を開発する方法を詳しく紹介し、コード例を添付します。
1. マルチレベル メニューのデータ構造の作成
マルチレベル メニューを開発する前に、最初にメニューのデータ構造を定義する必要があります。通常、配列を使用して、マルチレベル メニューの階層関係を表すことができます。各メニュー項目には、一意の識別子 (id)、メニュー名 (name)、親メニュー識別子 (parentId)、およびサブメニュー リスト (children) が含まれます。
以下はメニュー データ構造の例です:
const menus = [ { id: 1, name: '菜单1', parentId: 0, children: [ { id: 11, name: '菜单1-1', parentId: 1, children: [] }, { id: 12, name: '菜单1-2', parentId: 1, children: [ { id: 121, name: '菜单1-2-1', parentId: 12, children: [] }, { id: 122, name: '菜单1-2-2', parentId: 12, children: [] }, ] }, ] }, { id: 2, name: '菜单2', parentId: 0, children: [ { id: 21, name: '菜单2-1', parentId: 2, children: [] }, { id: 22, name: '菜单2-2', parentId: 2, children: [] }, ] }, ];
2. マルチレベル メニューのレンダリング
uniapp では、d477f9ce7bf77f53fbcf36bec1b69b7a## を使用できます。 # および
ff6d136ddc5fdfeffaf53ff6ee95f185 タグを使用して、複数レベルのメニューをレンダリングします。まず、メニュー データを再帰的に走査し、対応するメニュー項目を生成する必要があります。
<template> <ul> <li v-for="menu in menus" :key="menu.id"> {{ menu.name }} <ul v-if="menu.children.length > 0"> <menu-item :menus="menu.children"></menu-item> </ul> </li> </ul> </template> <script> export default { props: { menus: { type: Array, default: () => [], }, }, }; </script>上記のコードでは、カスタム コンポーネント
1ba7583cfd83c8dd70d5f5984e0f282a を使用して、サブメニューを再帰的にレンダリングします。
ff6d136ddc5fdfeffaf53ff6ee95f185 タグの
v-if ディレクティブで、現在のメニュー項目にサブメニューがあるかどうかを判断し、サブメニューがある場合は