私は、DOMレンダリングの一部として実装されているコンポーネントを持っています。アプリケーションのスケルトンは、親および$emit
データ(それはいくつかのフォーム入力を表示する)コンポーネントを再マウントする方法は?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
</head>
<body>
<div id="app">
<my-component></my-component>
<button>press this button to reload the component</button>
</div>
</body>
</html>
<my-component>
が機能的です。
再マウントする方法はありますか?目標は、コンポーネントの内容と設定を、あたかも最初にレンダリングされたかのように(その状態を保持するdata()
要素のリセットを含む)持つことです。
そこにはsome solutionsがありますが、それらはすべてdata()
の書き換えを前提としていますが、これは避けたいものです。
私が理解しているのは、レンダリング時に正しい場所にドームに注入された実際のHTML/CSS/JSコードなので、「再マウント」という概念が存在しないことを恐れています。 data()の前に必ず書き直してください。
あなたは 'data'をreseting避けたい理由は? – mklimek
@mklimek:私はコンポーネントをリセットするためのよりクリーンな方法を探していました。 'data()'を上書きすると、元のままにしたり、元のコピー(空)やその他のものを持っている必要があります。私はそれを一般的な状態にリセットするコマンドを再インストールすることを望んでいました。それがないなら、これは世界の終わりではありません。それは私のための美学の問題(そしてコードの単純さ)です。 – WoJ
この便利なone-linerを使って、データを 'data()'関数が返す元のデータに)リセットできます: 'Object.assign(this。$ data、this。$ options.data.call(this));' – AlbinoDrought