使用Vue和axios無需刷新頁面更新數據
<p>我有一個在 Vue 和 Axios 上製作的包含 2 個選項卡(問題和數據)的頁面。
在第一個選項卡中,我填寫表單並提交 - 儲存按鈕 <strong>v-on:click="save"</strong>。 </p>
<pre class="brush:php;toolbar:false;">save: function() {
axios({
method: 'patch',
url: url,
data: this.data
})
.then(function (response) {
this.data = response.data;
}</pre>
<p>在第二個選項卡(資料)中,我有已儲存資料的清單:</p>
<pre class="brush:php;toolbar:false;">mounted() {
axios
.get('/api/recommended-products/?patient_uuid=' '{{patient.uuid}}')
.then(response => (this.data= response.data.results))
}</pre>
<p>現在,當我更改「問題」標籤中的答案時,「資料」標籤中的清單應該會自動變更。如果我刷新頁面,它就會改變 - Mounted() 有效。
我嘗試創建 <strong>updateList()</strong> 函數:</p>
<pre class="brush:php;toolbar:false;">updateList: function() {
axios
.get('/api/recommended-products/?patient_uuid=' '{{patient.uuid}}')
.then(response => (this.data= response.data.results))
}</pre>
<p>並將其加到 <strong>save()</strong> 函數中,例如:</p>
<pre class="brush:php;toolbar:false;">save: function() {
axios({
method: 'patch',
url: url,
data: this.data
})
.then(function (response) {
this.data = response.data;
this.updateList();
}</pre>
<p>問題是這種方式第二次可以工作(有時有效有時不行)。所以我只是將 <strong>location.reload();</strong> 加入 <strong>save()</strong> 但我不喜歡這個方法。是否可以在不刷新頁面的情況下更新資料列表?我對 <strong>updateList()</strong> 函數做錯了什麼? </p>