web history分析

632 ワード

react-routerの使用中に、単一ページがどのようにページをリフレッシュしないのか知りたい

        if (canUseHistory) {
          globalHistory.pushState({ key, state }, null, href); //html5 api   href     

          if (forceRefresh) {
            window.location.href = href;//    ,        
          } else {
            const prevIndex = allKeys.indexOf(history.location.key);
            const nextKeys = allKeys.slice(
              0,
              prevIndex === -1 ? 0 : prevIndex + 1
            );

            nextKeys.push(location.key);
            allKeys = nextKeys;

            setState({ action, location });
          }
        }