この記事では、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 環境をインストールする (推奨)
序文最近、小さなプログラムを開発しているときに、このような問題に遭遇しました。ユーザーが認証をクリッ...
今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。...
序文アプリケーション シナリオ: おそらく、内部 Web サイトは外部ユーザーにアクセス可能である必...
IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...
マイクリMyCLI は、自動補完と構文の強調表示を備えた MySQL、MariaDB、および Per...
序文MySQL をインストールすると、通常はスーパーユーザー root を作成します。多くの人がこの...
以前にインストールされたバージョンのデータベースをアンインストールする方法については、この記事を参照...
この記事では、JavaScriptの長い画像スクロールの具体的なコードを参考までに共有します。具体的...
MySQL の暗号化と復号化の例データの暗号化と復号化はセキュリティ分野で非常に重要です。プログラマ...
このプロジェクトでは、Vue+Router+Element の具体的なコードを共有して、シンプルなナ...
序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...
Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...
1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...
この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...
目次序文Toastコンポーネントをカプセル化する方法ユースケース具体的な実装要約する序文ビジネスが発...