欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue SPA單頁面的應(yīng)用和對比

 更新時間:2022年08月05日 15:55:25   作者:飯啊飯°  
單頁面是指整個應(yīng)用程序只有一個唯一完整的 HTML 頁面,而其它所謂的頁面,其實都是組件片段而已,切換頁面也只是切換一個 HTML 中顯示不同的組件片段。在今后所有的開發(fā)項目都是單頁面應(yīng)用

一、什么是SPA

  • SPA(single-page-application)就是單頁應(yīng)用。
  • 它通過動態(tài)重寫當(dāng)前頁面來與用戶交互,這種方法避免了頁面之間切換打斷用戶體驗在單頁應(yīng)用中,所有必要的代碼(HTML、JavaScript和CSS)都通過單個頁面的加載而檢索,或者根據(jù)需要(通常是為響應(yīng)用戶操作)動態(tài)裝載適當(dāng)?shù)馁Y源并添加到頁面頁面在任何時間點(diǎn)都不會重新加載,也不會將控制轉(zhuǎn)移到其他頁面。
  • 熟悉的JS框架如react , vue , angular , ember都屬于SPA。

二、SPA和MPA的區(qū)別

MPA(MultiPage-page application)就是多頁應(yīng)用,每一個頁面就是主頁面,都是獨(dú)立的。

區(qū)別:

 單頁面應(yīng)用(SPA)多頁面應(yīng)用(MPA)
組成一個主頁面和多個頁面片段多個主頁面
刷新方式局部刷新整頁刷新
url模式哈希模式歷史模式
SEO搜索引擎優(yōu)化難實現(xiàn),可使用SSR方式改善容易實現(xiàn)
數(shù)據(jù)傳遞容易通過url,cookie,localStorage等傳遞
頁面切換速度快、用戶體驗良好切換加載資源,速度慢,用戶體驗差
維護(hù)成本相對容易相對復(fù)雜

三、單頁應(yīng)用的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • 具有桌面應(yīng)用的及時性、網(wǎng)站的可移植性和可訪問性;
  • 用戶體驗好、快,內(nèi)容的改變不需要重新加載整個頁面;
  • 良好的前后端分離,分工更加明確。

缺點(diǎn)

  • 不利于搜索引擎的抓??;
  • 首次渲染速度相對較慢。

四、怎么解決SPA首屏加載速度慢

1、什么是首屏加載

首屏?xí)r間:指的是瀏覽器從響應(yīng)用戶輸入地址,到首屏內(nèi)容渲染完成的時間,此時整個網(wǎng)頁不一定要全部渲染完成,但要展示當(dāng)前視窗需要的內(nèi)容

2、加載慢的原因

  • 網(wǎng)絡(luò)延時問題;
  • 資源文件體積是否過大;
  • 資源是否重復(fù)發(fā)送請求加載;
  • 加載腳本的時候,渲染內(nèi)容堵塞。

3、解決方案

減小入口文件體積:常用的手段是路由懶加載,把不同路由對應(yīng)的組件分割成不同的代碼塊,待路由被請求的時候會單獨(dú)打包路由,使得入口文件變小,加載速度大大增加。在vue-router配置路由的時候,采用動態(tài)加載路由的形式。

routes:[ 
    path: 'Blogs',
    name: 'ShowBlogs',
    component: () => import('./components/ShowBlogs.vue')
]
  • 靜態(tài)資源本地緩存:后端返回資源問題:采用HTTP緩存,設(shè)置Cache-Control,Last-Modified,Etag等響應(yīng)頭;采用Service Worker離線緩存。前端合理利用localStorage
  • UI框架按需加載:在日常使用UI框架,例如element-UI、或者antd,我們經(jīng)常性直接引用整個UI庫,但實際上我用到的組件只有按鈕,分頁,表格,輸入與警告 所以我們要按需引用。
import { Button, Input, Pagination, Table, TableColumn, MessageBox } from 'element-ui';
Vue.use(Button)
Vue.use(Input)
Vue.use(Pagination)

組件重復(fù)打包:假設(shè)A.js文件是一個常用的庫,現(xiàn)在有多個路由使用了A.js文件,這就造成了重復(fù)下載。解決方案:在webpack的config文件中,修改CommonsChunkPlugin的配置。

minChunks: 3 //minChunks為3表示會把使用3次及以上的包抽離出來,放進(jìn)公共依賴文件,避免了重復(fù)加載組件
  • 圖片資源的壓縮:圖片資源雖然不在編碼過程中,但它卻是對頁面性能影響最大的因素。對于所有的圖片資源,可以進(jìn)行適當(dāng)?shù)膲嚎s,對頁面上使用到的icon,可以使用在線字體圖標(biāo),或者雪碧圖,將眾多小圖標(biāo)合并到同一張圖上,用以減輕http請求壓力。
  • 開啟GZip壓縮
  • 使用SSR:也就是服務(wù)端渲染,組件或頁面通過服務(wù)器生成html字符串,再發(fā)送到瀏覽器。從頭搭建一個服務(wù)端渲染是很復(fù)雜的,vue應(yīng)用建議使用Nuxt.js實現(xiàn)服務(wù)端渲染。

全面的首屏優(yōu)化方式:

到此這篇關(guān)于Vue SPA單頁面的應(yīng)用和對比的文章就介紹到這了,更多相關(guān)Vue SPA單頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Vue中數(shù)據(jù)可視化詞云展示與詞云的生成

    詳解Vue中數(shù)據(jù)可視化詞云展示與詞云的生成

    數(shù)據(jù)可視化是現(xiàn)代Web應(yīng)用程序中的一個重要組成部分,詞云是一種非常流行的數(shù)據(jù)可視化形式,可以用來展示文本數(shù)據(jù)中的主題和關(guān)鍵字,本文我們將介紹如何在Vue中使用詞云庫進(jìn)行數(shù)據(jù)可視化詞云展示和詞云生成,需要的可以參考一下
    2023-06-06
  • Vue優(yōu)化:常見會導(dǎo)致內(nèi)存泄漏問題及優(yōu)化詳解

    Vue優(yōu)化:常見會導(dǎo)致內(nèi)存泄漏問題及優(yōu)化詳解

    這篇文章主要介紹了Vue優(yōu)化:常見會導(dǎo)致內(nèi)存泄漏問題及優(yōu)化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • html2canvas使用文檔(vue舉例)

    html2canvas使用文檔(vue舉例)

    html2canvas.js是一款可以在網(wǎng)頁上實現(xiàn)頁面截圖的js,它使用了html5和css3的一些新功能特性,實現(xiàn)了在客戶端對網(wǎng)頁進(jìn)行截圖的功能,這篇文章主要給大家介紹了關(guān)于html2canvas使用的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 如何構(gòu)建 vue-ssr 項目的方法步驟

    如何構(gòu)建 vue-ssr 項目的方法步驟

    這篇文章主要介紹了如何構(gòu)建 vue-ssr 項目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 一篇帶你搞懂Vue中的自定義指令

    一篇帶你搞懂Vue中的自定義指令

    自定義指令,是Vue提供的一種擴(kuò)展和定制的機(jī)制,使開發(fā)者能夠在組件中直接操作DOM、處理事件、添加樣式等,并提供了與第三方庫集成的方式,定義指令使得Vue在處理交互和DOM操作時更加靈活和強(qiáng)大,本文將帶大家搞懂Vue中的自定義指令,需要的朋友可以參考下
    2023-07-07
  • Vue使用axios post方式將表單中的數(shù)據(jù)以json格式提交給后端接收操作實例

    Vue使用axios post方式將表單中的數(shù)據(jù)以json格式提交給后端接收操作實例

    這篇文章主要介紹了Vue使用axios post方式將表單中的數(shù)據(jù)以json格式提交給后端接收操作,結(jié)合實例形式分析了vue基于axios庫post傳送表單json格式數(shù)據(jù)相關(guān)操作實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2023-06-06
  • vue混入mixin流程與優(yōu)缺點(diǎn)詳解

    vue混入mixin流程與優(yōu)缺點(diǎn)詳解

    混入(mixin)提供了一種非常靈活的方式,來分發(fā)vue組件中的可復(fù)用功能。一個混入對象可以包含任意組件選項。當(dāng)組件使用混入對象時,所有混入對象的選項將被“混合”進(jìn)入該組件本身的選項
    2022-09-09
  • Vue實現(xiàn)單點(diǎn)登錄控件的完整代碼

    Vue實現(xiàn)單點(diǎn)登錄控件的完整代碼

    這里提供一個Vue單點(diǎn)登錄的demo給大家參考,對Vue實現(xiàn)單點(diǎn)登錄控件的完整代碼感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • Vue框架中正確引入JS庫的方法介紹

    Vue框架中正確引入JS庫的方法介紹

    最近在學(xué)習(xí)使用vue框架,在使用中遇到了一個問題,查找相關(guān)資料終于找了正確的姿勢,所以這篇文章主要給大家介紹了關(guān)于在Vue框架中正確引入JS庫的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • Vue實現(xiàn)點(diǎn)擊按鈕下載文件的操作代碼(后端Java)

    Vue實現(xiàn)點(diǎn)擊按鈕下載文件的操作代碼(后端Java)

    最近項目中需要實現(xiàn)點(diǎn)擊按鈕下載文件的需求,前端用的vue后端使用的java代碼,今天通過本文給大家分享vue點(diǎn)擊按鈕下載文件的實現(xiàn)代碼,需要的朋友參考下吧
    2021-08-08

最新評論