この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次のとおりです。 レンダリング 予防
<テンプレート> <ul v-show="isShow" ref="ユーザーツリー"> <li v-for="(item, idx) in userList" :key="idx"> <div> <!-- 複数選択ユーザーツリー --> <入力 クラス="プライマリ" タイプ="チェックボックス" v-model="selectUsers1" :value="item.userId" v-show="isCheck" /> <!-- 単一選択ユーザーツリー --> <span @click="onSelect(アイテム)" :style="{ 色: selectUser1 == item.userId ? '赤' : '', カーソル: 'ポインタ', }" > <i class="iconfont icon-user"></i> {{ item.userName }}</span > <!-- ユーザーツリーを展開します --> <i クラス="iconfont icon-right" v-if="item.haveChild" @click="アイテムを展開(idx)" </i> </div> <!-- ネストされたユーザーツリー --> <ユーザーツリー :user-id="item.userId" v-if="item.haveChild" :is-show.sync="item.isShow" :select-user.sync="selectUser1" :select-users.sync="selectUsers1" :is-check="isCheck" </ユーザーツリー> </li> </ul> </テンプレート> <スクリプト> エクスポートデフォルト{ name: "user-tree", // コンポーネント名として定義されます。そうでない場合、自己ネストにより、コンポーネント自体が登録されていないというエラーが報告されます。props: { isShow:{//ユーザーリストを展開するかどうか type: ブール値、 デフォルト: false }, userId:{//現在のユーザーツリーの親ID タイプ: 数値、 デフォルト: 0 }, selectUser:{//現在選択されているユーザーID タイプ: 数値、 デフォルト: 0 }, selectUsers:{//複数選択ユーザータイプ: 配列、 デフォルト: 関数() { 戻る []; } }, isCheck:{// 複数のオプションを選択するかどうか type: ブール値、 デフォルト: false } }, データ: () => ({ userList: [], //ユーザーリスト selectUser1: 1, //ユーザーの単一選択 selectUsers1: [], //ユーザーの複数選択 isLoad: true })、 時計: selectUser1 (){// ユーザーを単一選択、現在のレベルは親レベルに同期if (this.selectUser1 != this.selectUser) { this.$emit("update:select-user", this.selectUser1); } }, selectUser(){// ユーザーの単一選択、現在のレベルは親レベルと同期されますif (this.selectUser1 != this.selectUser) { this.selectUser1 = this.selectUser; } }, selectUsers1 (){//複数選択、現在のレベルは親レベルに同期if (this.selectUsers1 != this.selectUsers) { this.$emit("update:select-users", this.selectUsers1); } }, selectUsers (){//複数選択、現在のレベルは親レベルと同期if (this.selectUsers1 != this.selectUsers) { this.selectUsers1 = this.selectUsers; } }, isShow() { if (this.isShow) { ユーザーリストを取得します。 } } }, メソッド: { onSelect (item){// 単一選択ユーザー this.$emit("update:select-user", item.userId); }, expandItem (idx){//ユーザーツリーを展開します if (this.userList[idx].isShow) { this.userList[idx].isShow = false; } それ以外 { this.userList[idx].isShow = true; } }, ユーザーリストを取得する() { var リスト = []; (var i = 0; i < 10; i++) の場合 { var userId = Math.round(Math.random() * 10000); リスト.push({ ユーザーID: ユーザーID、 ユーザー名: "user-" + ユーザーID、 haveChild: i % 2, //サブツリーがあるかどうか isShow: false //サブツリーを表示するかどうか }); } this.userList = リスト; }, }, マウントされた(){ if (this.userId == 1){//現在の親 userId はルート ユーザー ID なので、ユーザー ツリーを読み込んで展開します this.getUserList(this.userId); } } }; </スクリプト> ツリーコンポーネントの使用 <div>{{ selectUser }}</div> <div> <span v-for="item in selectUsers" :key="item">【{{ item }}】</span> </div> <ユーザーツリー :ユーザーID="1" :is-show="true" :select-user.sync="ユーザーを選択" :select-users.sync="ユーザーを選択" :is-check="true" </ユーザーツリー> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]
>>: シェルスクリプトを使用して CentOS7 に python3.8 環境をインストールする (推奨)
簡略化されたファイル サイズを変更し、サンプルをダウンロードします。ファイルをローカル コンピュータ...
インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...
通常は ul、li を介して選択のデフォルト スタイルを変更して、実現をシミュレートします。このよう...
この記事の例では、画像拡大鏡効果を実現するためのVue3の具体的なコードを参考までに共有しています。...
前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...
序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...
序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...
まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...
序文MySQL では、Innodb と MyIsam の両方がインデックス構造として B+ ツリーを...
これらはすべて海外のE-WebTemplates WebサイトからのWebページテンプレートであり、...
——「MySQL in Simple Terms (第 2 版)」からのメモ数値型整数型バイト最小最...
以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...
目次1. はじめに2. アイデアファイルをアップロードする2つの方法3. ライフサイクル4. コード...
ルーティングとは何ですか?ルーティングとは、相互接続されたネットワークを介して送信元ステーションから...
序文多くのサイトが、ポイントやゴールドコインなど、情報のダウンロードに料金を請求していることは誰もが...