ビジネス開発では、バックエンドから返されたインターフェース データに基づいて、フロントエンドがそれをオブジェクト オブジェクトに保存するという状況によく遭遇します。フロントエンドの開発プロセスでは、いくつかのシナリオの利便性のために、オブジェクトに対応する属性を追加する必要がありますが、これらの属性はバックエンドにとって無意味であるため、保存して送信するときに削除することを望みます。 実際のビジネスコード: 保存する前に、対応する 非同期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つの方法
次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...
MQTT の紹介MQTT (Message Queuing Telemetry Transport)...
1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...
以前、「MySQL でコミットされていないトランザクション情報を検索する方法」というタイトルのブログ...
もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...
CSS3 では画像の色を変更できます。これからは複数の絵をデザインする必要がなくなり、いつでも修正で...
目次導入Homebrewをインストールするnvmをインストールするノードをインストールするインストー...
MySQL における Regexp の一般的な使用法特定の文字列を含むあいまい一致# コンテンツフィ...
今日も私のページが文字化けしていたので、インターネットで関連する問題を検索しました。この方法はかなり...
コンテナの応用はますます一般的になっていますが、大量のコンテナをどのように管理すればよいのでしょうか...
概要: MYSQLの問題解決記録:どのようなインストール方法 (rpm、gz、gz.xz) を使用す...
ミニプログラムはユーザーの個人情報を収集してアップロードしましたが、拒否されました。こんにちは、ミニ...
原理としては、まずボタン付きの div を記述し、次に画面のサイズに応じて自動的に適応してキーボード...
xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...
yum クイックインストール mysql yumリポジトリを追加する rpm -Uvh http:...