vue項(xiàng)目中js文件使用vue的this實(shí)例說明
vue中其他.js文件使用this實(shí)例
在main.js中引入vue,然后在vue文件中直接使用this(this指向的是vue實(shí)例),但是在實(shí)際開發(fā)中,我們往往會引入外部的js文件使用this,這個this就會指向window,并不是我們期待的vue實(shí)例,那么就需要重新引入vue文件(import Vue from ‘vue’),這樣很麻煩。
在目前項(xiàng)目中我使用的方法是mian.js導(dǎo)出vue實(shí)例,然后在需要使用的js中引入。
main.js中導(dǎo)出vue
let vue = new Vue({ router, store, // i18n, render: h => h(App) }).$mount('#app'); export default vue
request.js中導(dǎo)入main.js并使用
import axios from 'axios'; import { getAccessToken, getRefreshToken, getAccessTokenTTL } from '@/utils/auth' import _this from '../main.js' const service = axios.create({ timeout: 120000, baseURL: process.env.VUE_APP_BASE_API // withCredentials: true, // 跨域時攜帶cookies }) service.interceptors.request.use( async config => { // 防止緩存,給get請求加上時間戳 if (config.method === 'get') { const url = config.url url.indexOf('?') === -1 ? config.url = url + '?_=' + (new Date().getTime()) : config.url = url + '&_=' + (new Date().getTime()) } const token = getAccessToken('token') if (token) { config.headers['Authorization'] = token } return config }, err => Promise.reject(err) ) service.interceptors.response.use( response => { return response.data }, async error => { switch (error.response.data.code) { case 910005: // 返回910005 缺失accessToken case 910006: // 返回910006 獲取SESSIONID失敗 case 910007: // 返回910007 accessToken過期 case 910008: // 返回910008 找不到用戶信息 case 910009: // 返回910007 refreshToken過期 // console.log('跳轉(zhuǎn)登錄頁'); _this.$router.push('/login') break default: console.log('err' + error) } return Promise.reject(error) } ) export default service
vue模板使用this問題
在Vue模板中,this是隱式的(這就是為什么console.log不能從模板中工作的原因),所以可以跳過它,使用store存儲相應(yīng)數(shù)據(jù)
<input :value="$store.state.shareUrl"/>
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mui-player自定義底部導(dǎo)航在vue項(xiàng)目中顯示不出來的解決
這篇文章主要介紹了mui-player自定義底部導(dǎo)航在vue項(xiàng)目中顯示不出來的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Element-ui的table中使用fixed后出現(xiàn)行混亂情況的解決
這篇文章主要介紹了Element-ui的table中使用fixed后出現(xiàn)行混亂情況的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10利用vueJs實(shí)現(xiàn)圖片輪播實(shí)例代碼
本篇文章主要介紹了利用vueJs實(shí)現(xiàn)圖片輪播實(shí)例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06vue swipeCell滑動單元格(仿微信)的實(shí)現(xiàn)示例
這篇文章主要介紹了vue swipeCell滑動單元格(仿微信)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別
這篇文章主要介紹了詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08vue3+ts import引入第三方j(luò)s文件報(bào)錯的2種解決方法
這篇文章主要給大家介紹了關(guān)于vue3+ts import引入第三方j(luò)s文件報(bào)錯的2種解決方法,在Vue中通常我們引入一個js插件都是使用npm方式下載然后import使用的,需要的朋友可以參考下2023-08-08