この記事では、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 デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...
1. 文法 場所 [=|~|~*|^~|@] /uri/ { ... } 2. 説明上記の構文から、...
この記事では、VMware Workstation14 ProにUbuntu 16.04をインストー...
CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...
目次1. ステートメントを挿入する1.1 行を挿入する1.2 複数行を挿入する1.3 クエリステート...
目次DockerコンテナのエクスポートDockerコンテナのインポートこの記事では主に、コンテナ...
序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...
目次序文参考比較手動比較浅い比較徹底比較要約する序文JavaScript でプリミティブ値を比較する...
ここ数日ブログを更新していませんでした。簡単な HTML+CSS プロジェクトを終えたところです。数...
目次概要コールバックまたは高階関数とは何ですか?コールバック関数はどのように機能しますか?コールバッ...
LNMPのようなアーキテクチャを持つウェブサイトは、一般的にPHPフレームワークに基づいて開発されて...
張新旭氏の記事を引用して皆さんにシェアしたいと思います。 変更を加えたい場合は、対応する画像によって...
以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...
1. CSS変数がもたらす質的変化CSS 変数によってもたらされる改善は、CSS コードの節約や C...
序文Oracle や SQL Server などのデータベースには、ストレージ エンジンが 1 つだ...