Vue 및 axios를 사용하여 페이지를 새로 고치지 않고 데이터 업데이트
<p>Vue와 Axios에 2개의 탭(질문과 데이터)이 있는 페이지가 있습니다.
첫 번째 탭에서 양식을 작성하고 제출합니다. 저장 버튼 <strong>v-on:click="save"</strong>. </p>
<pre class="brush:php;toolbar:false;">저장: function() {
축({
방법: '패치',
URL: URL,
데이터: this.data
})
.then(함수(응답) {
this.data = 응답.데이터;
}</pre>
<p>두 번째 탭(데이터)에는 저장된 데이터 목록이 있습니다. </p>
<pre class="brush:php;toolbar:false;">mounted() {
액시오스
.get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}')
.then(응답 => (this.data= response.data.results))
}</pre>
<p>이제 질문 탭에서 답변을 변경하면 데이터 탭의 목록도 자동으로 변경됩니다. 페이지를 새로 고치면 변경됩니다. Mounted()가 작동합니다.
<strong>updateList()</strong> 함수를 만들어 보았습니다. </p>
<pre class="brush:php;toolbar:false;">updateList: function() {
액시오스
.get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}')
.then(응답 => (this.data= response.data.results))
}</pre>
<p><strong>save()</strong> 함수에 추가하세요. 예를 들면 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">저장: function() {
축({
방법: '패치',
URL: URL,
데이터: this.data
})
.then(함수(응답) {
this.data = 응답.데이터;
this.updateList();
}</pre>
<p>문제는 이 방법이 두 번째에도 작동한다는 것입니다(때로는 작동하고 때로는 작동하지 않습니다). 그래서 방금 <strong>save()</strong>에 <strong>location.reload();</strong>를 추가했지만 이 접근 방식은 마음에 들지 않습니다. 페이지를 새로 고치지 않고 데이터 목록을 업데이트할 수 있나요? <strong>updateList()</strong> 함수에 내가 뭘 잘못하고 있나요? </p>