91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nuxt服務端請求及獲取Cookie 的方法

發布時間:2021-06-28 17:10:41 來源:億速云 閱讀:774 作者:chen 欄目:編程語言

本篇內容主要講解“Nuxt服務端請求及獲取Cookie 的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Nuxt服務端請求及獲取Cookie 的方法”吧!

介紹

nuxt.js是基于Vue的應用框架,它預設了利用 Vue.js 開發服務端渲染的應用所需要的各種配置。它提供了一個asyncData方法可用于在服務端里異步的獲取數據,它可以在頁面組件每次加載前被調用。

使用

這里使用的是typescript的方式,asyncData方法獲取到數據后會填充到data中,且asyncData方法在vue組件實例化之前被調用,因此無法獲取到實例this。

方式一:使用axios

import axios from 'axios'
import { Component, Vue, } from "nuxt-property-decorator";
@Component({
  asyncData(context: any): Promise <any> {
            return axios.get('http://test-api/get/data').then(res => {
            return {title: res.data.title, list: res.data.list}
      })
  },
})
export default class Index extends Vue {}

方式二:使用async\await

import axios from 'axios'
import { Component, Vue, } from "nuxt-property-decorator";
@Component({
  async asyncData(context: any): Promise <any> {
            let {data} = await axios.get('http://test-api/get/data');
      return {title: data.title, list: data.list}
  },
})
export default class Index extends Vue {}

上面就是asyncData部分的使用方式,當頁面第一次加載時會在服務端請求數據并填充到頁面的data中。

獲取Cookie

因為asyncData是會在服務端調用的,因此它無法和瀏覽器一樣去獲取Cookie,但是asyncData中的第一個參數是一個上下文對象,它在服務端調用時,我們可以訪問用戶請求的req和res對象,因此我們也可以通過它來獲取我們對應的Cookie信息。

import axios from 'axios'
import { Component, Vue, } from "nuxt-property-decorator";
@Component({
  async asyncData(context: any): Promise <any> {
     let params = {
             name: 'tom',
        age: 20,
        token: '',
     };
        // 可以使用process.server檢查是否在服務器端  
      if (process.server) {
        if (context.req && context.req.headers !== undefined) {
          // 獲取Cookies信息
          let cookieArr = context.req.headers.cookie;
          if (!params.token) {
            params.token = getCookie('token', cookieArr)
          }
        }
      }

            let {data} = await axios.post('http://test-api/post/data', params);
      return {title: data.title, list: data.list}
  },
})
export default class Index extends Vue {}




 //獲取對應cookie方法
 function getCookie (name: string, strCookie: any) {
  let arrCookie = strCookie.split(';');
  let cookie = arrCookie.find(item => item.split('=')[0] === name);
  return cookie ? cookie.split('=')[1] : '';
}

結語

使用asyncData方法時需要注意上下文對象的一些參數是否可用,因為它同時應用在兩個端,所以需要對一些參數進行判斷之后在使用。

到此,相信大家對“Nuxt服務端請求及獲取Cookie 的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石首市| 沙湾县| 保山市| 宜黄县| 绥德县| 类乌齐县| 杭锦后旗| 乐陵市| 梁山县| 马边| 武宣县| 云浮市| 南安市| 鄂尔多斯市| 曲阳县| 西乌珠穆沁旗| 图木舒克市| 花垣县| 调兵山市| 平江县| 新津县| 华安县| 资溪县| 东源县| 类乌齐县| 体育| 沙雅县| 达尔| 昌黎县| 靖州| 弥勒县| 遂宁市| 巴塘县| 福贡县| 鹿邑县| 淳安县| 哈密市| 邵阳市| 黔西| 乐昌市| 曲阳县|