本篇內(nèi)容主要講解“Nuxt服務(wù)端請求及獲取Cookie 的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Nuxt服務(wù)端請求及獲取Cookie 的方法”吧!
在江州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),江州網(wǎng)站建設(shè)費(fèi)用合理。
介紹
nuxt.js是基于Vue的應(yīng)用框架,它預(yù)設(shè)了利用 Vue.js 開發(fā)服務(wù)端渲染的應(yīng)用所需要的各種配置。它提供了一個asyncData方法可用于在服務(wù)端里異步的獲取數(shù)據(jù),它可以在頁面組件每次加載前被調(diào)用。
使用
這里使用的是typescript的方式,asyncData方法獲取到數(shù)據(jù)后會填充到data中,且asyncData方法在vue組件實(shí)例化之前被調(diào)用,因此無法獲取到實(shí)例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部分的使用方式,當(dāng)頁面第一次加載時會在服務(wù)端請求數(shù)據(jù)并填充到頁面的data中。
獲取Cookie
因為asyncData是會在服務(wù)端調(diào)用的,因此它無法和瀏覽器一樣去獲取Cookie,但是asyncData中的第一個參數(shù)是一個上下文對象,它在服務(wù)端調(diào)用時,我們可以訪問用戶請求的req和res對象,因此我們也可以通過它來獲取我們對應(yīng)的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檢查是否在服務(wù)器端 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 {} //獲取對應(yīng)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] : ''; }
結(jié)語
使用asyncData方法時需要注意上下文對象的一些參數(shù)是否可用,因為它同時應(yīng)用在兩個端,所以需要對一些參數(shù)進(jìn)行判斷之后在使用。
到此,相信大家對“Nuxt服務(wù)端請求及獲取Cookie 的方法”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文標(biāo)題:Nuxt服務(wù)端請求及獲取Cookie的方法
網(wǎng)頁地址:http://m.newbst.com/article32/gohcpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、軟件開發(fā)、定制開發(fā)、Google、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)