簡體   English   中英

如何將JQuery AJAX函數轉換為vue.js

[英]How to convert JQuery AJAX function to vue.js

我有以下用jQuery編寫的AJAX函數(只需進行AJAX調用即可獲取div A和​​div B的結果-該示例已簡化)

JavaScript的

$(document).ready(function(){
    $( "#c" ).on( "click", function() {
        jQuery.ajax({
            type: "POST",
            url: "post.php",
            data: "",
            dataType:"JSON",
            success: function(data){
                if (data.status == 1){
                    $("#a").html(data.a);
                    $("#b").html(data.b);
                }
            }
        })
    })
})

HTML

<div id="a"></div>
<div id="b"></div>
<button id="c">Start</button>

我了解如何為vue.js制作HTML模板以及如何設置JavaScript變量,但是我如何為vue.js設置AJAX請求?

謝謝。

首先,您必須使用jQuery擺脫DOM定位。在VueJS中,沒有直接的DOM操作。 接下來,您必須停止思考jQuery方式-Vue和jQuery是2個完全不同的事物,它們具有不同的設計模式。

關於您的問題:

首先,您必須在DOM元素上附加事件偵聽器

<button id="c" @click="ajaxMethod">Start</div>

然后要在您的Vue實例中定義該方法,但是在創建該方法之前,請確保已安裝jQuery

new Vue({
  el: '#app',
  data: {
   msg: 'hi';
  },
  methods: {
   ajaxMethod() {
    jQuery.ajax({
      // bla bla bla...
    })
   }
  }
})

但是最后,我不建議您在這里使用jQuery-還有更好的庫,例如Vue Resource和Axios。

建議的方法是使用axios庫。

<div id="app">  
  <div>{{a}}</div>
  <div>{{b}}</div>
  <button @click="retrieveData">Start</button>
</div>

Vue實例在哪里

import axios from 'axios'
new Vue({
  el: '#app',
  data: {
    a: '',
    b: ''
  },
  methods: {
    retrieveData() {
      axios.post('post.php', {}, )
       .then(resp => {
         this.a = resp.data.a
         this.b = resp.data.b
       })
    }
  }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM