1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      DVA框架統(tǒng)一處理所有頁面loading狀態(tài)的示例分析-創(chuàng)新互聯(lián)

      這篇文章給大家分享的是有關(guān)DVA框架統(tǒng)一處理所有頁面loading狀態(tài)的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

      創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)義安,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

      這篇文章主要介紹了關(guān)于DVA框架統(tǒng)一處理所有頁面的loading狀態(tài),有著一定的參考價值,現(xiàn)在分享給大家,有需要的朋友可以參考一下

      dva 有一個管理 effects 執(zhí)行的 hook,并基于此封裝了 dva-loading 插件。下面通過本文給大家分享DVA框架統(tǒng)一處理所有頁面的loading狀態(tài),感興趣的朋友一起看看吧

      dva 有一個管理 effects 執(zhí)行的 hook,并基于此封裝了 dva-loading 插件。通過這個插件,我們可以不必一遍遍地寫showLoadinghideLoading,當發(fā)起請求時,插件會自動設(shè)置數(shù)據(jù)里的 loading 狀態(tài)為 true 或 false 。然后我們在渲染 components 時綁定并根據(jù)這個數(shù)據(jù)進行渲染。

      dva-loading的使用非常簡單,在index.js中加入:

      // 2. Plugins
      app.use(createLoading());

      每個頁面中將loading狀態(tài)作為屬性傳入組件,在進行樣式處理,比如轉(zhuǎn)圈圈或者顯示正在加載什么的,但是重點是,我們的app有多個頁面,每個頁面都這么做,很繁瑣。

      如何只做一次狀態(tài)處理,每次請求期間都會觸發(fā)loading狀態(tài)呢,其實也很簡單啦,因為dva-loading提供了一個global屬性。

      1、state中的loading對象

      DVA框架統(tǒng)一處理所有頁面loading狀態(tài)的示例分析

      loading對象中的global屬性表示的全局loading狀態(tài),models里是每個model的loading狀態(tài)

      所以我們根據(jù)state.loading.global指示全局loading狀態(tài)。

      2、一個父級組件

      我們要向所有頁面應(yīng)用這個loading狀態(tài),那么我們可以在每個頁面中使用一個父級組件來處理這個loading。上代碼:

      import React from 'react';
      import styles from './app.css';
      import { connect } from 'dva';
      import { ActivityIndicator } from 'antd-mobile';
      const TIMER = 800;
      let timeoutId = null;
      class App extends React.Component {
       state = {
        show: false
       }
       componentWillMount() {
        const { loading } = this.props;
        if (loading) {
         timeoutId = setTimeout(() => {
          this.setState({
           show: true
          });
         }, TIMER);
        }
       }
       componentWillReceiveProps(nextProps) {
        const { loading } = nextProps;
        const { show } = this.state;
        this.setState({
         show: false
        });
        if (loading) {
         timeoutId = setTimeout(() => {
          this.setState({
           show: true
          });
         }, TIMER);
        }
       }
       componentWillUnmount() {
        if (timeoutId) {
         clearTimeout(timeoutId);
        }
       }
       render() {
        const { loading } = this.props;
        const { show } = this.state;
        return (
         
          { this.props.children }
          
           
          

         

        );  } } const mapStateToProps = (state, ownProps) => {  return {   loading: state.loading.global && !state.loading.models.Verify  } }; export default connect(mapStateToProps)(App);

      說明:

      1、是ant-design mobile的一個loading指示組件,animating屬性指示顯示與否,我們使用show和loading兩個屬性來控制顯示與否。

      2、為什么要show和loading兩個參數(shù),有個loading不就可以了嗎?show的存在是為了實現(xiàn)一個需求:loading在請求發(fā)生的TIMER時間后出現(xiàn),如果請求很快,小于TIMER時間,那么就不顯示loading。如果沒有這個需求,這個組件中可以只保留render()方法。

      3、&& !state.loading.models.Verify這個是做什么的?這個的作用是排除Verify這個model對loading的影響,比如我不想在這個model對應(yīng)的頁面出現(xiàn)loading,可以在這里處理。

      3、在router.js中使用這個父級組件

      有了這個父級組件,那么在每個頁面中加入這個父級組件,就可以實現(xiàn)loading,當然這個是可以在router.js中統(tǒng)一處理一下的。

      比如:

       
         
          
          
          
          
          
          
          
         
        

      這樣,在進入/admin下的每個頁面,都會加載App作為父組件。

      感謝各位的閱讀!關(guān)于“DVA框架統(tǒng)一處理所有頁面loading狀態(tài)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


      分享標題:DVA框架統(tǒng)一處理所有頁面loading狀態(tài)的示例分析-創(chuàng)新互聯(lián)
      URL標題:http://www.ef60e0e.cn/article/coopih.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        广西| 鄂尔多斯市| 阜城县| 东台市| 鄂温| 云霄县| 精河县| 江西省| 朝阳区| 昌宁县| 太湖县| 阳春市| 淅川县| 临汾市| 溧阳市| 若尔盖县| 航空| 永康市| 卫辉市| 应城市| 徐闻县| 乐都县| 当雄县| 远安县| 通海县| 织金县| 宁乡县| 宁波市| 桑植县| 沧州市| 临城县| 揭阳市| 尉犁县| 新竹市| 靖安县| 绍兴市| 凤城市| 登封市| 丽江市| 桃园县| 贵定县|