Vue.js 是一款流行的前端框架,它支持使用 JSONP 作為數據交互方式。JSONP 是一種跨域數據交互方式,是通過在頁面中動態插入一個 script 標簽來實現的。Vue.js 提供了一個函數,可以方便地利用 JSONP 實現異步數據請求。
下面是一個簡單的 Vue.js 組件,它使用 JSONP 獲取天氣信息:
Vue.component('weather', { data: function() { return { weatherInfo: '', isFetching: true }; }, mounted: function() { var self = this; var url = 'http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=YOUR_APP_ID&callback=JSON_CALLBACK'; this.$jsonp(url, function(data) { self.weatherInfo = data.main.temp; self.isFetching = false; }); }, template: '<div>天氣:<span v-if="!isFetching">{{ weatherInfo }}</span></div>' });
這個組件首先聲明了一個 weatherInfo 變量和一個 isFetching 變量,分別用于存儲天氣信息和標識數據是否正在獲取中。它在 mounted 生命周期中調用了 this.$jsonp 函數,該函數用于發起 JSONP 請求,并在請求成功后更新組件的狀態。
在使用 JSONP 時,我們需要在 URL 中添加一個 callback 參數,其值應為一個全局函數名,在服務端返回時會返回一個類似于 callbackFunction({data}) 的字符串,JavaScript 解析這個字符串時會調用該函數,并傳入數據作為參數。
在上面的示例中,我們使用了一個名為 $jsonp 的 Vue.js 插件來實現 JSONP 請求。具體實現可參考jsonp插件的文檔。