1. セットアップを始める次のコード関数を簡単に紹介します。 <テンプレート> <div>{{ countNum} } } } <button @click="handerFunc">ボタン</button> </テンプレート> <スクリプト> 'vue' から {ref} をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 設定() { // この文は、変数 count が定義されていることを意味します。この変数の初期値は100です countNum = ref(100)とします。 // 結合された API では、メソッドを定義する場合、メソッド内で定義する必要はありません。関数handerFunc(){を直接定義するだけです // console.log(countNum); //countNum はオブジェクトです countNum.value += 10; } // 結合された API で定義されたメソッドまたは変数。外部で必要な場合は、return {aaa,func} return {countNum,handerFunc} を通じて公開する必要があります。 } } </スクリプト> 2. リアクティブの使用を理解するref 関数は、単純な型のデータの変更のみを監視できます。 <テンプレート> <div> <ul> <li v-for="satte.arr内のアイテム" :key="item.id"> {{item.name}} </li> </ul> </div> </テンプレート> <スクリプト> 'vue' から {reactive} をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 設定(){ console.log("setUp は自動的に実行されます") // ref 関数に関する注意: // ref 関数は単純なデータ型のみを監視でき、複雑なデータ型 (配列、オブジェクト) は監視できません。 // リアクティブメソッドにはオブジェクトが含まれています let satte=reactive({ 編曲:[ {name:"Si Teng",id:'0011'}, {name:"アンダー・ザ・スキン",id:'0011'}, {name:"百年の約束",id:'0012'}, {name:"三生三世",id:'0013'}, ] }) 返す { satte } }, } </スクリプト> 3. リアクティブを使用するビューの削除 <テンプレート> <div> <ul> <li v-for="(item,index) in satte.arr" :key="index" @click="del(index)"> {{item.name}} </li> </ul> </div> </テンプレート> <スクリプト> 'vue' から {reactive} をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 設定(){ satte = react({ 編曲:[ {name:"Si Teng",id:'0011'}, {name:"アンダー・ザ・スキン",id:'0011'}, {name:"百年の約束",id:'0012'}, {name:"三生三世",id:'0013'}, ] }) // クリックされた要素を削除する function del(index){ for(let i=0;i<satte.arr.length;i++){ if(インデックス==i){ satte.arr.splice(i,1) は、 } } } 戻り値 { satte, del} }, } </スクリプト> 4. 削除ロジックを分離する別モジュールを形成する <テンプレート> <div> <ul> <li v-for="(item,index) in satte.arr" :key="index" @click="del(index)"> {{item.name}} </li> </ul> </div> </テンプレート> <スクリプト> 'vue' から {reactive} をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 設定(){ // onlyDelLuoJi() メソッドには配列とメソッドが含まれており、分解と同様です。let {satte,del }=onlyDelLuoJi(); // 外部に公開する return {sate,del} }, } 関数onlyDelLuoJi(){ satte = react({ 編曲:[ {name:"Si Teng",id:'0011'}, {name:"アンダー・ザ・スキン",id:'0011'}, {name:"百年の約束",id:'0012'}, {name:"三生三世",id:'0013'}, ] }) // クリックされた要素を削除する function del(index){ for(let i=0;i<satte.arr.length;i++){ if(インデックス==i){ satte.arr.splice(i,1) は、 } } } //データ satte とメソッド del を公開する return { satte,del } } </スクリプト> 5. 追加機能を実装するイベント間でパラメータを渡す <テンプレート> <div> <div> <input type="text" v-model="addobj.watchTv.name"> <button @click="addHander">追加</button> </div> <ul> <li v-for="(item,index) in satte.arr" :key="index" @click="del(index)"> {{item.name}} </li> </ul> </div> </テンプレート> <スクリプト> 'vue' から {reactive} をインポートします エクスポートデフォルト{ 名前: 'アプリ'、 設定(){ // onlyDelLuoJi() メソッドには配列とメソッドが含まれており、分解と同様です。let {satte,del }=onlyDelLuoJi(); // 渡されたパラメータ satte は、onlyDelLuoJi 関数で提供される satte です。パスlet { addobj,addHander }=OnlyaddHander(satte); // 外部に公開する return {sate,del,addobj, addHander} }, } //関数モジュールを追加する function OnlyaddHander(satte){ console.log('initialize add', satte) addobj = リアクティブ({ テレビを見る:{ 名前:""、 id:"" } }); 関数addHander(){ // 間違ったメソッドをリセットしてクリアします // satte.arr.push(addobj.watchTv) // addobj.watchTv.name = ""; // addobj.watchTv.id = ""; // 正しいアプローチ let oldobj = Object.assign({}, addobj.watchTv) satte.arr.push(oldobj) } 戻り値: { addobj, addHander } } //関数モジュール関数のみ削除DelLuoJi(){ console.log('初期化を削除') satte = react({ 編曲:[ {name:"Si Teng",id:'0011'}, {name:"アンダー・ザ・スキン",id:'0011'}, {name:"百年の約束",id:'0012'}, {name:"三生三世",id:'0013'}, ] }) // クリックされた要素を削除する function del(index){ for(let i=0;i<satte.arr.length;i++){ if(インデックス==i){ satte.arr.splice(i,1) は、 } } } //データ satte とメソッド del を公開する return { satte,del } } </スクリプト> 6 別々のファイルに抽出する追加と削除のロジックを別のファイルに分離したいと考えています。 「vue」から{reactive}をインポートします 関数OnlyaddHander(satte){ console.log('initialize add', satte) addobj = リアクティブ({ テレビを見る:{ 名前:""、 id:"" } }); 関数addHander(e){ // 間違ったメソッドをリセットしてクリアします // satte.arr.push(addobj.watchTv) // addobj.watchTv.name = ""; // addobj.watchTv.id = ""; // 正しいアプローチ let oldobj = Object.assign({}, addobj.watchTv) satte.arr.push(oldobj) e.preventDefault(); } 戻り値: { addobj, addHander } } エクスポートデフォルトOnlyaddHander アデル 「vue」から{reactive}をインポートします 関数onlyDelLuoJi() { console.log('初期化を削除') satte = react({ 編曲:[ {name:"Si Teng",id:'0011'}, {name:"アンダー・ザ・スキン",id:'0011'}, {name:"百年の約束",id:'0012'}, {name:"三生三世",id:'0013'}, ] }) // クリックされた要素を削除する function del(index){ for(let i=0;i<satte.arr.length;i++){ if(インデックス==i){ satte.arr.splice(i,1) は、 } } } //データ satte とメソッド del を公開する return { satte,del } } エクスポートデフォルトのみDelLuoJi メインファイル <テンプレート> <div> <div> <input type="text" v-model="addobj.watchTv.name"> <button @click="addHander">追加</button> </div> <ul> <li v-for="(item,index) in satte.arr" :key="index" @click="del(index)"> {{item.name}} </li> </ul> </div> </テンプレート> <スクリプト> 「./components/del」からonlyDelLuoJiをインポートします。 「./components/add」からOnlyaddHanderをインポートします。 エクスポートデフォルト{ 名前: 'アプリ'、 設定(){ // onlyDelLuoJi() メソッドには配列とメソッドが含まれており、分解と同様です。let {satte,del }=onlyDelLuoJi(); // パラメータを渡す let { addobj,addHander }=OnlyaddHander(satte); // 外部に公開する return {sate,del,addobj, addHander} }, } </スクリプト> 以上がvue3組み合わせAPIにおけるsetup、ref、reactiveの詳しい使い方です。vue組み合わせAPIの詳細については、123WORDPRESS.COMの他の関連記事もぜひご覧ください! 以下もご興味があるかもしれません:
|
<<: MySQL ALTERコマンドの知識ポイントのまとめ
>>: Mysql マスタースレーブレプリケーションの注意事項の説明
Ubuntu は比較的人気のある Linux デスクトップ システムです。最近、Ubuntu 20....
この記事では、マーキースタイルのテキストの水平スクロールを実現するためのVueの具体的なコードを参考...
IE には長い間問題がありました。誰もがテストを受けたとき、誰もが笑顔でしたが、それはただのニヤニヤ...
MySQL Select ステートメントはどのように実行されますか?最近、Geek Time で D...
0x0 パラメータ検証Nest.jsでは、パラメータ検証業務のほとんどをパイプライン方式で実装してい...
導入あなたも面接でこれに遭遇したことがあるはずです。トランザクションの分離レベルについてお話ししまし...
属性チェック-厳密公式ドキュメントでは、チェックボックスが表示されるときに親項目と子項目を互いに関連...
Fabric プロジェクトのソースコードを読み直してみたところ、Docker の部分でよくわからな...
Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...
目次ナンセンス文章最初ルーター/index.js 2番目1. プラグインをインストールする2.mai...
実際のプロジェクトでは、上下のスクロール バーと左右のスクロール バーは DIV 内にないため、右の...
MultiTail は、tail コマンド機能と同様に、複数のドキュメントを同時に監視するために使用...
目次序文1. ロックとは何ですか? 2. InnoDBストレージエンジンのロック2.1 ロックの種類...
この記事は Linux centos8 をベースにして、docker をインストールし、イメージをプ...
目次構成解析サービス構築ディレクトリ構造ファイルを作成インスタンス構成サービスを開始するテストRed...