1. 程式人生 > >vue2實現懶載入

vue2實現懶載入

五、配置非同步元件實現懶載入的問題分析

  1、多次進出同一個非同步載入頁面是否會造成多次載入元件?

  答:否,首次需要用到元件時瀏覽器會發送請求載入元件,載入完將會快取起來,以供之後再次用到該元件時呼叫

  2、在多個地方使用同一個非同步元件時是否造成多次載入元件?如:

1

2

3

4

5

6

7

8

9

10

11

12

13

//a頁面

export default {

components: {

historyTab: resolve => {require([

'../../component/historyTab/historyTab.vue'], resolve)},//懶載入

},

}

//b頁面

export default {

components: {

historyTab: resolve => {require(['../../component/historyTab/historyTab.vue'], resolve)},//懶載入

},

}

  答:否,理由同上

  3、如果在兩個非同步載入的頁面中分別同步與非同步載入同一個元件時是否會造成資源重用? 如:

//a頁面
import historyTab from '../../component/historyTab/historyTab.vue';
export default {
    components: {
        historyTab
    },
}

//b頁面
export default {
    components: {
        historyTab: resolve => {require(['../../component/historyTab/historyTab.vue'], resolve)},//懶載入
    },
}

  答: 會, 將會造成資源重用, 根據打包後輸出的結果來看, a頁面中會嵌入historyTab元件的程式碼, b頁面中的historyTab元件還是採用非同步載入的方式, 另外打包chunk;

  解決方案: 元件開發時, 如果根頁面沒有匯入元件的情況下,而是在其他非同步載入頁面中同時用到元件, 那麼為實現資源的最大利用,在協同開發的時候全部人都使用非同步載入元件

  4、在非同步載入頁面中載嵌入非同步載入的元件時對頁面是否會有渲染延時影響?

  答:會, 非同步載入的元件將會比頁面中其他元素滯後出現, 頁面會有瞬間閃跳影響;

  解決方案:因為在首次載入元件的時候會有載入時間, 出現頁面滯後, 所以需要合理的進行頁面結構設計, 避免首次出現跳閃現象;

六、懶載入的最終實現方案

  1、路由頁面以及路由頁面中的元件全都使用懶載入

  優點:(1)最大化的實現隨用隨載

     (2)團隊開發不會因為溝通問題造成資源的重複浪費    

  缺點:(1)當一個頁面中巢狀多個元件時將傳送多次的http請求,可能會造成網頁顯示過慢且渲染參差不齊的問題

  2、路由頁面使用懶載入, 而路由頁面中的元件按需進行懶載入, 即如果元件不大且使用不太頻繁, 直接在路由頁面中匯入元件, 如果元件使用較為頻繁使用懶載入

  優點:(1)能夠減少頁面中的http請求,頁面顯示效果好

  缺點:(2)需要團隊事先交流, 在框架中分別建立懶載入元件與非懶載入元件資料夾

  3、路由頁面使用懶載入,在不特別影響首頁顯示延遲的情況下,根頁面合理匯入複用元件,再結合方案2

  優點:(1)合理解決首頁延遲顯示問題

     (2)能夠最大化的減少http請求, 且做其他他路由介面的顯示效果最佳

  缺點:(1)還是需要團隊交流,建立合理區分各種載入方式的元件資料夾

import()實現路由非同步載入

import()是個語法糖,返回值是一個Promise物件,意味著這需要非同步處理,你可以在.then()中拿到真正的模組。基於這點,你的截圖其實是這樣的:

{
 path: '/',
 name: 'login',
 component: () => {
   return import('xxx');
 },
}

把import包裹在函式中,當真正用到模組的時候,才執行 component().then()。這就是懶載入了

相關推薦

vue2實現載入

五、配置非同步元件實現懶載入的問題分析   1、多次進出同一個非同步載入頁面是否會造成多次載入元件?   答:否,首次需要用到元件時瀏覽器會發送請求載入元件,載入完將會快取起來,以供之後再次用到該元件時呼叫   2、在多個地方使用同一個非同步元件時是否造成多次載入元

js實現載入

當一個頁面有很多資料的時候,需要全部載入後,才顯示,網速不好時需要等很久。當用懶載入後,就只加載可視區的資料,反應更快,效果更好。 <!DOCTYPE html> <html> <head> <meta charset="utf-8" />

ionic3 實現載入方式 ---學習記錄

在最初使用ionic的時候,根據教程學習使用ionic搭建一個移動app的時候發現裡面的元件全部是使用的全屏載入的方式進行,根據查詢相關的資料學習瞭如何實踐ionic3懶載入方式。。。 以下是我進行的步驟 這是app.component.ts裡的內容 import

vue專案中實現載入

Vue-lazyload外掛實現懶載入 一. 外掛的下載: 利用npm下載安裝到專案中 npm install vue-lazyload --save-dev 二.外掛的註冊,及屬性的配置。 接下來只需要,在專案的入口檔案 main.js 中進行相關的屬性配置和註冊即可。

Android進階——佈局優化之靈活藉助ViewStub實現載入

引言 相信在開發Android App的過程中,我們會常常遇到這樣的業務需求,需要在執行時根據資料動態決定顯示或隱藏某個View和佈局。通常就是把可能用到的View先寫在佈局裡,再初始化其可見性都設為View.GONE,然後在程式碼中根據資料動態的更改它的可見

vue2元件載入淺析

/** * Created by ZHANZF on 2017-3-20. */ //vuex配置 import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ sta

Android--Fragment 實現載入和不重複載入

基類: package fragment; import android.support.v4.app.Fragment; import android.view.View; /** * Cr

lazyload.js實現載入

1:引入 <script type="text/javascript" src="assets/js/jquery.lazyload.min.js"></script> 2:html部分 <img class="lazy" data-origi

Fragment與Viewpager實現載入

本文轉載自:http://blog.csdn.net/q844258542/article/details/51525749(非常感謝博主的分享) 專案當中使用到tablayout+viewpager+fragment組合, 也是現在app非常流行的一種設計. vi

Android Fragment實現載入

在最近的專案中一個介面中有四個Fragment。每個碎片中都要進行網路請求。 週期也開始並進行了載入。後來在網上進行了搜尋找到了一個非常簡單的官方自帶的方法setUserVisibleHint(boolean isVisibleToUser)。我們可以通過這

JavaScript實現載入

常用的懶載入是圖片懶載入,jquery提供了很好的實現 本例要講的是對某一類進入【可視區域】的元素,進行懶載入 這裡的懶載入可以是載入一張圖片,也可是ajax非同步載入內容 比如:頁面如果非常豐富並且很長,需要使用者翻頁瀏覽的情況下 如果要對若干板塊進行懶載入,可以按照本例

Fragment實現載入,讓應用更優化

一.概述 玩過微信的都知道,微信用的是懶載入的模式,之所以使用懶載入是因為:當使用viewpager+adapter作為應用大的佈局時,viewpager會通過setOffscreenPageLimit來設定預載入的專案,不設定setOffscreenPage

基於Vue2.x開發的音樂播放器app(推薦介面+載入+axios獲取後端介面實現

1、專案開發需求分析: 包含四個層面—— (1)推薦模組 (2)歌手模組 (3)排行模組 (4)搜尋模組 2、專案開發流程 (1)搭建專案:藉助vue-cli腳手架工具,具體請參考部落格: ...; 由於專案存放在本地電腦E盤VueTest目錄下, cd E:\VueTes

vue2實現路由加載

webpack scrip keep ron out script 首頁 ber keyword 一、什麽是懶加載 顧名思義,懶加載就是隨用隨加載,什麽時候需要就什麽時候加載。 二、為什麽需要懶加載 在單頁應用中,如果沒有使用懶加載,webpac

ViewPager+Fragment組合的載入實現

前一篇文章我們介紹了viewpager的預載入特性(這裡作者強烈建議讀下:) 這篇文章我們主要介紹 viewpager懶載入實現 ViewPager+Fragment的搭配在日常開發中也比較常見,下圖為今日頭條app的截圖 ViewPager控制元件有個特有的預載入機制,即預設情況

js圖片(載入已經滾動的區域的圖片)載入實現方法

這種方法,會載入已經滾動區域的所有圖片,比如進入頁面就到了底部,那麼整個頁面的圖片都會載入。 區別於JS實現可視區域懶載入 、Jquery實現可是區域懶載入 <!DOCTYPE html> <html lang="en"> <head>

如何結合外掛 vue-lazyload 來簡單實現圖片載入

外掛地址:https://www.npmjs.com/package/vue-lazyload; 一、使用場景: 在專案中有很多條數的資訊,且圖片很多的時候,不需要一次把整個頁面的圖片都載入完,而是在滾動到出現在螢幕才去載入該圖片的時候就可以用這個外掛。 二、簡單使用步驟: 1. 在專案裡面 npm

載入和預載入的基本原理和實現方法

懶載入的原因: 對於圖片過多的場景,為了提高頁面的載入速度,降低伺服器的負載,增強使用者體驗,我們對還沒出現在視野的圖片先不載入,當元素出現在我們視野中的時候再載入。 懶載入的原理: 我們先將img標籤中的src連結設定為一樣的圖片(空白圖片),將真正的圖片連結放在自定義屬性中,如(da

ViewPager載入(取消預載入)的實現

ViewPager大家經常用到的一個控制元件,經常會需要取消它的預載入功能。 下面貼一段程式碼可以完美實現懶載入功能,親測可用。 首先需要寫一個基類,所有需要懶載入的都繼承這個類。這裡只寫了一些重要方法的實現,其他基類中的方法根據自己的需求新增 /** * * ViewPager + F

載入是什麼?如何實現

首先,我們應該都見過這樣的場景:一個頁面有很多圖片,但是首屏只出現幾張,這時如果一次性把圖片都加載出來會影響效能。這時可以使用懶載入,頁面滾動到可視區在載入。優化首屏載入。 實現:img標籤的src屬性為空,給一個data-xx屬,裡面存放圖片真實地址,當頁面滾動至此圖片出現在可是區域時,用js