この記事では、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 環境をインストールする (推奨)
目次必要:アイデア:レッスン:テキストを共有する:要約する必要:インターフェイスからサブメニュー デ...
目次背景ターゲット効果アイデア成し遂げるスワイパーは変更を聞きますカスタムドットモジュール変更イベン...
Ubuntu 15.04 は MySQL リモート ポート 3306 を開きます。以下の操作はすべて...
これでtransformコースは終了です。例を見てみましょう。transform transform...
目次forEach() (ES6) メソッドmap() (ES6) メソッドflatMap() メソ...
序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...
序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...
1. 兄弟要素の余白を結合する効果は次のようになります: (2 つの間の間隔は 150 ピクセルでは...
背景:かなり前(2017.6.5、記事にはタイムリーさがあり、特に使用されているツールは頻繁に更新さ...
【質問】 HP サーバーを使用しています。SSD が IOPS 約 5000 を書き込むと、%uti...
さて、質問させてください。MySQL で列を int(0) に設定すると何が起こりますか?この問題を...
コードをコピーコードは次のとおりです。 <html> <ヘッド> <ス...
問題:あるサーバー上の PHP プログラムは、localhost アドレス経由でデータベースに接続で...
質問: コンピュータを再起動した後、docker の mysql コンテナを再起動できません。原因が...
解決: pythearn2 パッケージをダウンロードしたディレクトリで、setup.py ファイルを...