国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

淺談Vue.js應用的四種AJAX請求數據模式

2024-05-06 15:12:08
字體:
來源:轉載
供稿:網友

如果您閑的沒事干去兩個Vue.js開發人員:“在Vue應用中使用AJAX的正確姿勢是咋樣的?”,您將會得到三種或更多的不同回答。

Vue.js官方沒有提供實現AJAX的指定方式,并且有許多不同的設計模式可以被有效地使用。每個都有自己的利弊,應根據要求進行判斷。你甚至可以同時使用幾個!

在本文中,我將向您展示您可以在Vue應用程序中實現AJAX的四個位置:

1、根實例
2、組件Components
3、Vuex actions
4、路線導航衛士
5、另加:獎金模式

我將解釋每個方法,舉一個例子,并涵蓋利弊。

一、根實例

在使用Vue框架時,您可以一開始就從根實例發出所有AJAX請求,即寫好所有的數據請求,并將所有狀態存儲在該實例中。如果任何子組件需要數據,它將會順著props中傳下來。如果子組件需要刷新數據,則將使用自定義事件來提示根實例請求它。

new Vue({ data: {  message: '' }, methods: {  refreshMessage(resource) {   this.$http.get('/message').then((response) {    this.message = response.data.message;   });  } }})Vue.component('sub-component', { template: '<div>{{ message }}</div>', props: [ 'message' ] methods: {  refreshMessage() {   this.$emit('refreshMessage');  } }});

優點

將所有的AJAX邏輯和數據保存在一個地方。 保持您的組件“獨立性”,以便它們可以更加專注于展示。

缺點

隨著您的應用擴展,需要書寫大量的“props”和自定義事件。

二、組件Components

在使用Vue框架時,組件負責管理自己的AJAX請求和獨立狀態。實際上,您可能需要創建幾個“容器組件”來管理本地組“展示組件”的數據。

例如,filter-list可能是一個容器組件包裝filter-input和filter-reset,它們作為展示組件。filter-list將包含AJAX數據邏輯,并且將管理該組中所有組件的數據,通過props和事件進行通信。

為了簡化此架構的實現,您可以將任何AJAX邏輯抽象為混合,然后在組件中使用mixin使其成為AJAX。

let mixin = { methods: {  callAJAX(resource) {   //...  } }};Vue.component('container-comp', { // No meaningful template, I just manage data for my children template: '<div><presentation-comp :mydata="mydata"></presentation-comp></div>',  mixins: [ myMixin ], data() {  return {   //...   } },});Vue.component('presentation-comp', { template: '<div>I just show stuff like {{ mydata }}</div>', props: [ 'mydata' ]});

優點

保持組件脫鉤和可重用。 在任何時候和任何地點都可以獲取數據。

缺點

與其他組件或組件組不通信數據。 組件可能會產生很多累贅的職責和重復的功能。

三、Vuex actions

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南华县| 安阳市| 丹巴县| 衡阳县| 大庆市| 隆安县| 芦溪县| 酉阳| 本溪市| 宁陵县| 溧阳市| 洛隆县| 汽车| 阿拉善盟| 平武县| 开平市| 河南省| 长宁区| 花莲县| 商丘市| 汾西县| 吉木乃县| 元朗区| 东安县| 延长县| 彰化县| 宜兰市| 额敏县| 杭州市| 麻阳| 富川| 丰顺县| 鲁甸县| 通化县| 墨竹工卡县| 广元市| 重庆市| 茶陵县| 赫章县| 剑河县| 青龙|