第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Vue 中只執(zhí)行一次方法?

如何在 Vue 中只執(zhí)行一次方法?

慕運維8079593 2021-11-12 10:37:07
我正在創(chuàng)建一個顯示產(chǎn)品的 Web 應(yīng)用程序(所有產(chǎn)品信息都來自數(shù)據(jù)庫),每個產(chǎn)品都有一個More Details >>按鈕,單擊時會打開一個包含該特定產(chǎn)品信息的模式窗口。js 文件包含被多次調(diào)用的 allRecords() 函數(shù),這使得檢查中的網(wǎng)絡(luò)選項卡變得瘋狂。我希望它只被調(diào)用一次。我看過這個:如何只觸發(fā)一次 vue 方法,而不是每次都觸發(fā),我不確定如何將它應(yīng)用到我的代碼中。這是我的代碼如下:PHP文件<div id="myapp">  {{ allRecords() }}  <div class="content">    <div class="nested" v-for="product in products">      ...    </div>    <b-modal id="productModal" v-if="chosenProduct" hide-footer="true" ok-title="Buy Now" size="lg" :title="chosenProduct.Name">      <div class = "inner-container">        ...      </div>    </b-modal>  </div></div>JS文件var app = new Vue({  'el': '#myapp',  data: {    products: "",    chosenProduct: null  },  methods: {    allRecords: function(){ \\ This function here is being called multiple times      axios.get('ajaxfile.php')        .then(function (response) {          app.products = response.data;        })        .catch(function (error) {          console.log(error);        });    },    chooseProduct: function (product) {      app.chosenProduct = product    }  }})
查看完整描述

1 回答

?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗 獲得超3個贊

根據(jù)我上面的評論:您可以在組件的掛載鉤子中執(zhí)行 ajax 請求。您的回調(diào)已設(shè)置該products屬性。然后就不需要{{allRecords()}}從模板調(diào)用了,你可以簡單地products在你的v-for循環(huán)中使用。


這是該方法的演示。為了演示(和娛樂)目的,我將您的 php 替換為 icanhazdadjoke API。


var app = new Vue({

  'el': '#myapp',

  data: {

    products: "loading dad joke...",

    chosenProduct: null

  },

  methods: {

    chooseProduct: function(product) {

      app.chosenProduct = product;

    }

  },

  created: function() {

    axios.get('https://icanhazdadjoke.com/search?term=dogs', {

      headers: {

        Accept: 'application/json'

      }

    })

    .then(function(response) {

      app.products = response.results;

    })

    .catch(function(error) {

      console.log(error);

    });

  }

})

<script src="https://unpkg.com/axios@0.2.1/dist/axios.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="myapp">

  <p v-for="product in products">

    {{product.joke}}

  </p>

</div>


查看完整回答
反對 回復(fù) 2021-11-12
  • 1 回答
  • 0 關(guān)注
  • 1323 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號