ビジネス開発では、バックエンドから返されたインターフェース データに基づいて、フロントエンドがそれをオブジェクト オブジェクトに保存するという状況によく遭遇します。フロントエンドの開発プロセスでは、いくつかのシナリオの利便性のために、オブジェクトに対応する属性を追加する必要がありますが、これらの属性はバックエンドにとって無意味であるため、保存して送信するときに削除することを望みます。 実際のビジネスコード: 保存する前に、対応する 非同期saveData(タイプ、データ){ // 送信時に余分なフィールドを削除する削除 data.isCommonValue データを削除する。isRemoteValue これを待ちます。$request({ ...API.EDIT_SERVICE、 メソッド: type === 'add' ? 'post' : 'put', データ }) } 上記は一般的な書き方ですが、シナリオによっては最善の方法ではなく、副作用が生じる可能性があります。例として以下を説明します。 例上記の状況をよりわかりやすく示すために、例を書き直します (実装を説明するためだけに)。 人 = { id: '001', 名前: 'リガン', メールアドレス: '[email protected]' } リクエスト: バックエンドに送信するときに、電子メール フィールドを削除する必要があります。 方法1: 削除上記のビジネスコード処理方法と同じ person.email を削除する console.log(person) // {id: '001', name: 'ligang'} 元のデータ内の関連属性も削除されます。 Reflect.deleteProperty(人、'メール') 方法2: 分解元のオブジェクトが参照される場合の副作用を回避しながら、新しいオブジェクトを形成します。 {id, name} = 人とする newPerson = {id, name} とします。 console.log(newPerson) // {id: '001'、名前: 'ligang'} 元のデータへの参照は切り取られます。この方法は、保持される属性が少ない場合には単純で理解しやすいですが、保持される属性が多すぎる場合には複雑になります。 {email, ...newPerson} = 人とする console.log(newPerson) // {id: '001'、名前: 'ligang'} 元のデータへの参照は切り取られます。この方法は、保持する属性の数が多い場合には単純で理解しやすいですが、保持する属性の数が少ない場合には複雑になります。 補充するVue では、既に作成されたインスタンスにルートレベルのレスポンシブ プロパティを動的に追加することはできません。以下の方法は無効です。 this.$set(this, 'email', '') this.$set(this.$data, 'email', '') 要約する実際の使用においては、元のデータに影響を与えないように方法 2 を使用することを強くお勧めします。特に mvvm フレームワークでは、元のデータが応答していることが多いです。delete データ () { 戻る { 人: 名前: 'リガン', メールアドレス: '[email protected]' } } }, メソッド: { 削除プロパティ() { この人物のメールを削除 // this.$delete(this.person, 'email') }, プロパティを追加します(){ this.person.email = 'xxx' this.$set(this.person, 'address', 'xxx') } } 1. 2. 1. 2. この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 純粋な CSS3 でペットの鶏のサンプルコードを実現
>>: MySQLデータベースでコマンドを自動補完する3つの方法
目次安定スロットル: 手ぶれ防止: 一定時間内に最後のタスクのみを実行します。スロットル: 一定期間...
私は新年を迎える前からプロジェクトに取り組んでいましたが、ここ数日で、新しいサーバー用に新しく増設し...
概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...
このセクションから、http モジュールの実装原理について説明します。http モジュールで非常に重...
Linux に VMWare をインストールするには、公式 Web サイト https://www....
1. 問題を発見する© は HTML の著作権記号ですが、間違ったフォントを選択す...
この記事では、HTML描画ユーザー登録ページの具体的な実装コードを参考までに共有します。具体的な内容...
目次1. 時計の新しい使い方1.1. ウォッチの使用構文1.2. 複数の属性値を監視する1.3. 参...
最近、問題のある新しい SQL が本番データベースに入力される数を最小限に抑えるために、開発仕様を整...
1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...
目次序文最適化変数の抽出二次包装 el-tag コンポーネント使用要約する序文バックエンドシステムの...
この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。 以下...
目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...
目次1. 背景2. サイレントログインとは何ですか? 3. カスタムログイン状態を維持する方法4. ...
では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...