Vue は、開発者が効率的で保守しやすい Web アプリケーションを構築するのに役立つ多くの便利なツールとコンポーネントを提供する人気の JavaScript フレームワークです。そのうちの 1 つはツリー メニュー コンポーネントです。この記事では、Vue ドキュメントでのツリー メニューの実装プロセスを紹介し、詳細なコード例を示します。
Vue でツリー メニューを作成するのは非常に簡単です。次の手順に従うだけです:
We以下に示すように、Vue のテンプレート構文を使用して、基本的なツリー メニュー フレームを定義できます。
<template> <div class="tree"> <ul> <li v-for="node in treeData"> {{ node.label }} <ul v-if="node.children"> <li v-for="childNode in node.children"> {{ childNode.label }} </li> </ul> </li> </ul> </div> </template>
上記のテンプレート コードでは、単一の div
要素のツリー メニュー コンポーネントを作成しました。また、v-for
ディレクティブを使用してデータを反復処理し、ネストされた li
要素と ul
要素を生成してツリー構造を表示しました。現在のノードのラベル テキストは、li
要素内にレンダリングされます。
Vue では、コンポーネントのデータを data
属性に保存できます。コンポーネント内で treeData
プロパティを定義する必要があります。これは、ツリー メニューを含むデータ形式です。
<script> export default { name: "TreeMenu", data() { return { treeData: [ { id: 1, label: "Fruits", children: [ { id: 2, label: "Apple" }, { id: 3, label: "Banana" }, { id: 4, label: "Orange" } ] }, { id: 5, label: "Vegetables", children: [ { id: 6, label: "Carrot" }, { id: 7, label: "Potato" }, { id: 8, label: "Onion" } ] } ] }; } }; </script>
上記のコードは、単純なツリー メニュー データを定義します。各ノードには、id
、label
、および children
属性が含まれています。 children
プロパティは、ツリー メニュー全体の構築に使用できる別のノードの配列を保存します。
Vue は、インタラクション ロジックを導入および処理するためのさまざまなメソッドを提供します。ここでは、methods
属性を使用して、ノードのクリック イベントを処理し、ノードの拡大と縮小を制御する単純な関数を定義します。
<script> export default { name: "TreeMenu", data() { return { treeData: [ { id: 1, label: "Fruits", expanded: false, children: [ { id: 2, label: "Apple" }, { id: 3, label: "Banana" }, { id: 4, label: "Orange" } ] }, { id: 5, label: "Vegetables", expanded: false, children: [ { id: 6, label: "Carrot" }, { id: 7, label: "Potato" }, { id: 8, label: "Onion" } ] } ] }; }, methods: { toggleNode(node) { node.expanded = !node.expanded; } } }; </script>
上記のコードでは、ノードの展開状態と折りたたみ状態を制御するために expanded
属性を追加しました。ツリー内のノードをクリックすると、toggleNode()
関数がトリガーされ、ノードの展開状態と折りたたまれた状態が切り替わります。
以前に定義した toggleNode()
関数をノードのクリック イベントにバインドします
<template> <div class="tree"> <ul> <li v-for="node in treeData" :key="node.id"> <span @click="toggleNode(node)"> {{ node.label }} </span> <ul v-if="node.children && node.expanded"> <li v-for="childNode in node.children" :key="childNode.id"> <span @click="toggleNode(childNode)"> {{ childNode.label }} </span> </li> </ul> </li> </ul> </div> </template>
上記のコードは、クリック イベントにバインドされた span
要素を追加し、toggleNode()
メソッドを呼び出してノードの展開と閉じを制御します。
ついに、基本的な Vue ツリー メニューの実装が完了しました。上記のコード例では、いくつかの基本的な Vue コンポーネントと API のみを使用しました。ただし、CSS を使用してスタイルを調整したり、データ レイヤーにフィールドやメソッドを追加してより多くのノード情報やイベントを表示したりするなど、ニーズに応じてツリー メニューをカスタマイズできます。
以上がVue ドキュメントのツリー メニュー実装プロセスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。