亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

Egg Vue SSR 服務端渲染數據請求與asyncData

2024-07-09 22:41:49
字體:
來源:轉載
供稿:網友

服務端渲染 Node 層直接獲取數據

在 Egg 項目如果使用模板引擎規范時通是過 render 方法進行模板渲染,render 的第一個參數模板路徑,第二個參數時模板渲染數據. 如如下調用方式:

async index(ctx) {  // 獲取數據,可以是從數據庫,后端 Http 接口 等形式  const list = ctx.service.article.getArtilceList();  // 對模板進行渲染,這里的 index.js 是 vue 文件通過 Webpack 構建的 JSBundle 文件  await ctx.render('index.js', { list });}

從上面的例子可以看出,這種使用方式是非常典型的也容易理解的模板渲染方式。在實際業務開發時,對于常規的頁面渲染也建議使用這種方式獲取數據沒,然后進行頁面渲染。Node 獲取數據后,在 Vue 的根 Vue 文件里面就可以通過 this.list 的方式拿到 Node 獲取的數據,然后就可以進行 vue 模板文件數據綁定了。

在這里有個高階用法,可以直接把 ctx 等 Node 對象傳遞到 第二個參數里面,  這個時候你在模板里面就直接拿到 ctx 這些對象。 但這個時候就需要自己處理好 SSR 渲染時導致的 hydrate 問題,因為前端hydrate時并沒有 ctx 對象。 

async index(ctx) {  // 獲取數據,可以是從數據庫,后端 Http 接口 等形式  const list = ctx.service.article.getArtilceList();  // 對模板進行渲染,這里的 index.js 是 vue 文件通過 Webpack 構建的 JSBundle 文件  await ctx.render('index.js', { ctx, list });}

服務端渲染 asyncData 方式獲取數據

在 Vue 單頁面 SSR 時涉及數據的請求方式,Node 層獲取數據方式可以繼續使用,但當路由切換時(頁面直接刷新),Node 層就需要根據路由獲取不同頁面的數據,同時還要考慮前端路由切換的情況,這個時候路由是不會走 Node 層路由,而是直接進行的前端路由,這個時候也要考慮數據的請求方式。

基于以上使用的優雅問題,這里提供一種 asyncData 獲取數據的方式解決單頁面 SSR 刷新不走 SSR 問題。 Node 不直接獲取數據,獲取數據的代碼直接寫到前端代碼里面。這里需要解決如下兩個問題:

前端路由匹配 asyncData 調用

這里根據路由切換 url 獲取指定的路由 componet 組件,然后檢查是否有 aysncData,如果有就進行調用。調用之后,數據會放到 Vuex 的 store 里面。

return new Promise((resolve, reject) => {    router.onReady(() => {     // url 為當前請求路由,可以通過服務端傳遞到前端頁面     const matchedComponents = router.getMatchedComponents(url);     if (!matchedComponents) {      return reject({ code: '404' });     }     return Promise.all(      matchedComponents.map(component => {       // 關鍵代碼       if (component.methods && component.methods.asyncData) {        return component.methods.asyncData(store);       }       return null;      })     ).then(() => {      context.state = {       ...store.state,       ...context.state      };      return resolve(new Vue(options));     });    });   });

Vue 模板定義 asyncData 方法

前端通過 Vuex 進行數據管理,把數據統一放到 store 里面,前端通過 this.$store.state 方式可以獲取數據,Node 和 前端都可以獲取到。

<script type="text/babel"> export default{  computed: {   isLoading(){    return false;   },   articleList() {    return this.$store.state.articleList;   }  },  methods: {   asyncData ({ state, dispatch, commit }) {    return dispatch('FETCH_ARTICLE_LIST')   }  } }</script>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲色图| 国模精品视频一区二区三区| 精品无人国产偷自产在线| 清纯唯美亚洲激情| 欧美—级高清免费播放| 成人免费视频a| 九九精品视频在线| xvideos成人免费中文版| 久久久av免费| 欧美黑人国产人伦爽爽爽| 91亚洲精品在线观看| 成人激情综合网| 欧美天堂在线观看| www.午夜精品| 国产欧美日韩中文| 国产一区欧美二区三区| 欧美巨乳在线观看| 性色av一区二区三区免费| 亚洲大胆人体视频| 欧美超级免费视 在线| 日韩成人在线视频观看| 狠狠色狠狠色综合日日小说| xxav国产精品美女主播| 色偷偷888欧美精品久久久| 国产精品久久久久久久一区探花| 亚洲色图日韩av| 国产人妖伪娘一区91| 在线视频欧美日韩精品| 久久香蕉国产线看观看网| 美女视频久久黄| 午夜剧场成人观在线视频免费观看| 91亚洲精品久久久久久久久久久久| 亚洲区一区二区| 亚洲欧美在线一区| 国产91对白在线播放| 欧美精品videofree1080p| 欧美日韩电影在线观看| 在线午夜精品自拍| 久久久久久中文字幕| 成人精品福利视频| 亚洲片国产一区一级在线观看| 亚洲精品国产电影| 久久久久久久久爱| 色综合导航网站| 久久在线视频在线| 92福利视频午夜1000合集在线观看| 日韩电影免费在线观看中文字幕| 国产成人精品视频| 一本色道久久88亚洲综合88| 久久亚洲私人国产精品va| 国内精品一区二区三区| 性欧美xxxx视频在线观看| 午夜剧场成人观在线视频免费观看| 亚洲性生活视频| 国模精品视频一区二区三区| 国产精品99久久久久久白浆小说| 欧美在线xxx| 国产成人鲁鲁免费视频a| 日韩国产精品一区| 国产成人精品在线观看| 在线观看亚洲区| 欧美日韩国产成人| 国产精品精品视频| 日韩黄在线观看| 国产精品aaaa| 欧美激情按摩在线| 欧美日韩在线观看视频| 亚洲日韩中文字幕| 91免费人成网站在线观看18| 欧美日韩国产一区二区| 日韩免费视频在线观看| 这里只有精品在线观看| 日韩av电影在线网| 91精品国产色综合久久不卡98口| 国产精品日韩在线| 成人女保姆的销魂服务| 2018国产精品视频| 一区二区成人精品| 亚洲福利视频专区| 国产欧美日韩91| 久久精品一偷一偷国产| 日韩精品视频在线| 日韩色av导航| 欧美在线精品免播放器视频| 伊人久久精品视频| 日本亚洲精品在线观看| 九九热精品视频国产| 亚洲欧美一区二区三区在线| 亚洲精品91美女久久久久久久| 国产精品av免费在线观看| 欧美激情手机在线视频| 久久国产精品久久久久| 在线播放日韩专区| 日韩激情av在线免费观看| 精品国产999| 亚洲аv电影天堂网| 欧美孕妇与黑人孕交| 国产一区二区成人| 97色在线视频观看| 久久久久久久网站| 欧美在线国产精品| 国产精品吹潮在线观看| 日韩一区二区av| 久久69精品久久久久久国产越南| 欧美日韩国产综合视频在线观看中文| 久久国产一区二区三区| 国产精品久久久久久久久影视| 国产精品视频永久免费播放| 精品亚洲精品福利线在观看| 精品夜色国产国偷在线| 欧美日韩加勒比精品一区| 亚洲精品久久久久中文字幕二区| 欧美国产乱视频| 亚洲免费伊人电影在线观看av| 亚洲免费av电影| 亚洲欧美国产精品专区久久| 日韩中文字幕视频| 久久久久久久久久久国产| 91久久国产综合久久91精品网站| 国产成人精品网站| 91理论片午午论夜理片久久| 97久久精品人搡人人玩| 在线播放国产一区中文字幕剧情欧美| 伊人亚洲福利一区二区三区| 日韩经典中文字幕| 91欧美激情另类亚洲| 久久免费观看视频| 亚洲xxxx3d| 日韩a**站在线观看| 国产精品1区2区在线观看| 欧美大片欧美激情性色a∨久久| 欧美在线观看网址综合| 日韩精品极品在线观看播放免费视频| 456亚洲影院| 欧美精品一本久久男人的天堂| 热久久这里只有精品| 欧美日韩一区二区在线| 欧美成人午夜激情| 日韩在线国产精品| 成人动漫网站在线观看| 欧美大尺度电影在线观看| 精品国产一区av| 7777kkkk成人观看| 国产精品久久久久久久久久| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲最新av网址| 亚洲精品第一国产综合精品| 日韩欧美在线视频日韩欧美在线视频| 国产精品久久久久久久久久尿| 亚洲午夜色婷婷在线| 欧日韩不卡在线视频| 亚洲一区二区三区成人在线视频精品| 亚洲第一网中文字幕| 欧美天天综合色影久久精品| 日韩精品视频在线免费观看| 97福利一区二区| 日韩av中文在线| 欧美一区二区大胆人体摄影专业网站| 国产成人综合久久| 色狠狠久久aa北条麻妃| 国产成人精品在线播放| 91视频88av| 亚洲v日韩v综合v精品v| 色中色综合影院手机版在线观看|