簡単な備忘録
copy.js
import { cloneDeep } from 'lodash';
let shallowCopied = Object.assign({}, source);
let deepCopied = cloneDeep(source);
シャローコピーの場合はオブジェクトのプロパティ値が
プリミティブ型の場合はコピーできますが
オブジェクトの場合、インスタンスが共有されてしまいます。
(参照先がコピー元のまま)
lodashライブラリを利用することで
ディープコピーができます。
なお、import文をただ書いただけの場合、
webpackでのバンドル時に不必要なモジュールまでバンドルして
ファイルサイズが肥大化してしまうようです。
lodash-webpack-pluginを利用することで
必要なモジュールのみのバンドルが可能なようです。
参考
javascriptでlodashを使ってディープコピーを簡単に行う
[webpack] バンドルされるLodashのサイズを減らす方法