最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、什么是SPA

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

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

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

區(qū)別:

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

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

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

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

缺點(diǎn)

  • 不利于搜索引擎的抓取;
  • 首次渲染速度相對(duì)較慢。

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

1、什么是首屏加載

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

2、加載慢的原因

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

3、解決方案

減小入口文件體積:常用的手段是路由懶加載,把不同路由對(duì)應(yīng)的組件分割成不同的代碼塊,待路由被請(qǐng)求的時(shí)候會(huì)單獨(dú)打包路由,使得入口文件變小,加載速度大大增加。在vue-router配置路由的時(shí)候,采用動(dòng)態(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)常性直接引用整個(gè)UI庫,但實(shí)際上我用到的組件只有按鈕,分頁,表格,輸入與警告 所以我們要按需引用。
import { Button, Input, Pagination, Table, TableColumn, MessageBox } from 'element-ui';
Vue.use(Button)
Vue.use(Input)
Vue.use(Pagination)

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

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

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

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

相關(guān)文章

  • 使用Vue和React分別實(shí)現(xiàn)錨點(diǎn)定位功能

    使用Vue和React分別實(shí)現(xiàn)錨點(diǎn)定位功能

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue和React分別實(shí)現(xiàn)錨點(diǎn)定位功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以學(xué)習(xí)一下
    2024-01-01
  • vue使用qrcode生成二維碼的方法

    vue使用qrcode生成二維碼的方法

    這篇文章給大家介紹了vue使用qrcode生成二維碼的方法,在Vue中實(shí)現(xiàn)二維碼生成需要使用第三方庫來處理生成二維碼的邏輯,常用的庫有qrcode和vue-qrcode,所以接下來小編將給大家介紹vue?qrcode生成二維碼的方法示例,需要的朋友可以參考下
    2024-01-01
  • ElementUi中select框在頁面滾動(dòng)時(shí)el-option超出元素區(qū)域的問題解決

    ElementUi中select框在頁面滾動(dòng)時(shí)el-option超出元素區(qū)域的問題解決

    本文主要介紹了ElementUi中select框在頁面滾動(dòng)時(shí)el-option超出元素區(qū)域的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • vue+element-ui表格封裝tag標(biāo)簽使用插槽

    vue+element-ui表格封裝tag標(biāo)簽使用插槽

    這篇文章主要介紹了vue+element-ui表格封裝tag標(biāo)簽使用插槽,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 手把手教你用VUE封裝一個(gè)文本滾動(dòng)組件

    手把手教你用VUE封裝一個(gè)文本滾動(dòng)組件

    封裝組件相信對(duì)大家來說都不陌生了,下面這篇文章主要給大家介紹了關(guān)于用VUE封裝一個(gè)文本滾動(dòng)組件的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • VUE重點(diǎn)問題總結(jié)

    VUE重點(diǎn)問題總結(jié)

    本篇內(nèi)容給大家總結(jié)了VUE的重要難點(diǎn),并把代碼做了詳細(xì)分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-03-03
  • vue3使用vue-router及路由權(quán)限攔截方式

    vue3使用vue-router及路由權(quán)限攔截方式

    這篇文章主要介紹了vue3使用vue-router及路由權(quán)限攔截方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • elementplus?card?懸浮菜單的實(shí)現(xiàn)

    elementplus?card?懸浮菜單的實(shí)現(xiàn)

    本文主要介紹了elementplus?card?懸浮菜單的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log

    vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log

    console.log一般都是在開發(fā)環(huán)境下使用的,在生產(chǎn)環(huán)境下需要去除?,本文主要介紹了vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • vue如何使用媒體查詢實(shí)現(xiàn)響應(yīng)式

    vue如何使用媒體查詢實(shí)現(xiàn)響應(yīng)式

    這篇文章主要介紹了vue如何使用媒體查詢實(shí)現(xiàn)響應(yīng)式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論

宝鸡市| 罗源县| 斗六市| 白沙| 安龙县| 高雄县| 铜陵市| 睢宁县| 青海省| 扎囊县| 清原| 安顺市| 永川市| 通辽市| 乐安县| 神木县| 当涂县| 巴林右旗| 新河县| 渑池县| 布尔津县| 阳信县| 郴州市| 博乐市| 呼伦贝尔市| 贵阳市| 浠水县| 应城市| 岳池县| 大渡口区| 佛山市| 高碑店市| 盘山县| 东乌珠穆沁旗| 仙居县| 泰安市| 公主岭市| 利辛县| 芜湖市| 汉中市| 从化市|