vue가 도메인 간 라우팅 충돌을 해결하는 방법에 대해
Vue.js(/vjuː/로 발음, view와 유사)는 사용자 인터페이스 구축을 위한 진보적인 프레임워크입니다. 이 기사는 도메인 간 라우팅 충돌을 해결하기 위한 Vue의 아이디어 분석에 대해 자세히 소개합니다. 필요한 친구가 참조하면 모든 사람에게 도움이 될 수 있기를 바랍니다.
Vue 소개
Vue.js(/vjuː/로 발음, view와 유사)는 사용자 인터페이스 구축을 위한 진보적인 프레임워크입니다.
Vue는 뷰 레이어에만 집중하고 상향식 증분 개발 설계를 채택합니다.
Vue의 목표는 가능한 가장 간단한 API를 통해 반응형 데이터 바인딩 및 구성된 뷰 구성 요소를 구현하는 것입니다.
Vue는 배우기가 매우 쉽습니다. 이 튜토리얼은 Vue 2.1.8 버전 테스트를 기반으로 합니다.
라우팅에서 다음 프록시를 구성하면 도메인 간 문제를 해결할 수 있습니다
proxyTable: { '/goods/*': { target: 'http://localhost:3000' }, '/users/*': { target: 'http://localhost:3000' } },
이 구성 방법은 도메인 간 문제를 어느 정도 해결하지만 몇 가지 문제가 발생합니다.
예를 들어, 우리의 vue 경로도 For Goods라는 이름으로 지정되어 있으며 이때 충돌이 발생합니다.
프로젝트에 인터페이스가 많으면 여기서 구성하는 것이 매우 번거롭고 라우팅 충돌도 발생하기 쉽습니다.
올바른 자세
모든 인터페이스가 하나의 입구로 통합되고 표준화되면 충돌이 어느 정도 해결될 것입니다.
위 구성을 앞에 /api/로 통일하세요
proxyTable: { '/api/**': { target: 'http://localhost:3000' }, },
이렇게 구성하면 됩니다. , http 요청을 사용할 때 변경이 발생합니다. API가 요청 앞에 추가됩니다. API도 인터페이스 앞에 추가됩니다.
proxyTable: { '/api/**': { target: 'http://localhost:3000', pathRewrite:{ '^/api':'/' } }, },
위 코드는 가상 API 인터페이스를 제거하는 것입니다. 이때 실제로 요청을 위해 백엔드로 이동하면 api 접두사가 추가되지 않으므로 프런트엔드 http를 만들 때 요청 시 API 접두어도 이 에이전트와 일치할 수 있습니다. 코드는 다음과 같습니다.
logout(){ axios.post('/api/users/logout').then(result=>{ let res = result.data; this.nickName = ''; console.log(res); }) }, getGoods(){ axios.post('/api/goods/list').then(result=>{ let res = result.data; this.nickName = ''; console.log(res); }) }
axios의 baseUrl을 사용하여 값을 api로 직접 설정할 수 있으므로 방문할 때마다 api 접두사가 자동으로 추가되므로 각 항목에 수동으로 추가할 필요가 없습니다. 이 접두사는 인터페이스에 기록됩니다
다음과 같이 항목 파일에서 구성합니다.
import Axios from 'axios' import VueAxios from 'vue-axios' Vue.use(VueAxios, Axios) Axios.defaults.baseURL = 'api'
'api/'를 구성하면 기본적으로 로컬 도메인을 읽습니다
이렇게 구성하면 프로덕션 환경과 개발 환경이 구분되지 않습니다
In config
const isPro = Object.is(process.env.NODE_ENV, 'production') module.exports = { baseUrl: isPro ? 'http://www.vnshop.cn/api/' : 'api/' }
폴더에 새로운 api.config.js 구성 파일을 생성한 후 main.js에 도입합니다. . 이를 통해 프로덕션과 개발의 정의 접두사가 동적으로 일치하는지 확인할 수 있습니다.
import apiConfig from '../config/api.config' import Axios from 'axios' import VueAxios from 'vue-axios' Vue.use(VueAxios, Axios) Axios.defaults.baseURL = apiConfig.baseUrl
위 구성 후에는 DOM에서 쉽게 수행할 수 있습니다. 액세스를 위해 어떤 구성 요소에도 axios 모듈을 도입할 필요가 없습니다.
logout(){ this.$http.post('/users/logout').then(result=>{ let res = result.data; this.nickName = ''; console.log(res); }) }, getGoods(){ this.$http.post('/goods/list').then(result=>{ let res = result.data; this.nickName = ''; console.log(res); }) }
최종 코드
에이전트에서 구성
proxyTable: { '/api/**': { target: 'http://localhost:3000', pathRewrite:{ '^/api':'/' } }, },
config에서 api.config.js 구성
config 폴더에 새 api.config.js 구성 파일 만들기
const isPro = Object.is(process.env.NODE_ENV, 'production') module.exports = { baseUrl: isPro ? 'http://www.vnshop.cn/api/' : 'api/' }
프로덕션 및 개발 구성에 대해 잘 모르겠습니다. 이해하려면
dev-server.js에 가서 구성 코드를 볼 수 있습니다
const webpackConfig = (process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production') ? require('./webpack.prod.conf') : require('./webpack.dev.conf')
main.js 항목 파일에서 구성하세요
import apiConfig from '../config/api.config' import Axios from 'axios' import VueAxios from 'vue-axios' Vue.use(VueAxios, Axios) Axios.defaults.baseURL = apiConfig.baseUrl
dom에서 API를 요청하는 자세
logout(){ this.$http.post('/users/logout').then(result=>{ let res = result.data; this.nickName = ''; console.log(res); }) }, getGoods(){ this.$http.post('/goods/list').then(result=>{ let res = result.data; this.nickName = ''; console.log(res); }) }
PS: 크로스를 배워봅시다 - 코드 설정을 통해 Vue 아래 도메인
1. vue로 개발할 때 도메인 간 문제가 종종 발생합니다. 실제로 vue cli에는 도메인 간 요청을 설정할 수 있는 파일이 있습니다.
2. 도메인 간 요청을 할 수 없는 경우 프로젝트의 config 폴더 아래 index.js에서 dev:{} 부분을 수정할 수 있습니다.
dev: { env: require('./dev.env'), port: 8080, autoOpenBrowser: false, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api': { target: 'http://api.douban.com/v2', changeOrigin: true, pathRewrite: { '^/api': '' } } }, // CSS Sourcemaps off by default because relative paths are "buggy" // with this option, according to the CSS-Loader README // (https://github.com/webpack/css-loader#sourcemaps) // In our experience, they generally work as expected, // just be aware of this issue when enabling this option. cssSourceMap: false }
접속해야 하는 도메인 이름으로 대상을 설정하세요.
3. 그런 다음 main.js에서 전역 속성을 설정합니다.
Vue.prototype.HOST = '/api'
4. 이 시점에서 다음과 같이 이 도메인 이름을 전역적으로 사용할 수 있습니다.
var url = this.HOST + '/movie/in_theaters' this.$http.get(url).then(res => { this.movieList = res.data.subjects; },res => { console.info('调用失败'); });
관련 권장 사항:
Ajax 크로스에 대한 자세한 설명 예 -도메인 요청 원리
jquery에서 ajax 도메인 간 제출 시 2개 요청 문제에 대한 해결 방법
위 내용은 vue가 도메인 간 라우팅 충돌을 해결하는 방법에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Apache Camel은 서로 다른 애플리케이션, 서비스 및 데이터 소스를 쉽게 통합하여 복잡한 비즈니스 프로세스를 자동화할 수 있는 ESB(Enterprise Service Bus) 기반 통합 프레임워크입니다. ApacheCamel은 경로 기반 구성을 사용하여 통합 프로세스를 쉽게 정의하고 관리합니다. ApacheCamel의 주요 기능은 다음과 같습니다. 유연성: ApacheCamel은 다양한 애플리케이션, 서비스 및 데이터 소스와 쉽게 통합될 수 있습니다. HTTP, JMS, SOAP, FTP 등을 포함한 여러 프로토콜을 지원합니다. 효율성: ApacheCamel은 매우 효율적이어서 많은 수의 메시지를 처리할 수 있습니다. 성능을 향상시키는 비동기 메시징 메커니즘을 사용합니다. 확장 가능

강력한 성능과 다재다능한 기능으로 잘 알려진 iPhone은 복잡한 전자 장치에서 흔히 발생하는 문제인 가끔씩 발생하는 문제나 기술적인 어려움으로부터 자유롭지 않습니다. iPhone 문제를 경험하면 실망스러울 수 있지만 일반적으로 알람은 필요하지 않습니다. 이 종합 가이드에서는 iPhone 사용과 관련하여 가장 일반적으로 직면하는 문제 중 일부를 쉽게 설명하는 것을 목표로 합니다. 당사의 단계별 접근 방식은 이러한 일반적인 문제를 해결하는 데 도움을 주고 장비를 최상의 작동 순서로 되돌릴 수 있는 실용적인 솔루션과 문제 해결 팁을 제공하도록 설계되었습니다. 결함이 있거나 더 복잡한 문제에 직면하더라도 이 문서는 문제를 효과적으로 해결하는 데 도움이 될 수 있습니다. 일반적인 문제 해결 팁 특정 문제 해결 단계를 진행하기 전에 다음은 몇 가지 유용한 정보입니다.

NumPy 라이브러리는 과학 컴퓨팅 및 데이터 분석을 위한 Python의 중요한 라이브러리 중 하나입니다. 그러나 때로는 버전을 업그레이드하거나 다른 라이브러리와의 충돌을 해결해야 하기 때문에 NumPy 라이브러리를 제거해야 할 수도 있습니다. 이 기사에서는 충돌과 오류를 방지하기 위해 NumPy 라이브러리를 올바르게 제거하는 방법을 독자에게 소개하고 특정 코드 예제를 통해 작업 프로세스를 보여줍니다. NumPy 라이브러리 제거를 시작하기 전에 pip 도구가 설치되어 있는지 확인해야 합니다. pip는 Python용 패키지 관리 도구이기 때문입니다.

jQuery.val()을 사용할 수 없는 문제를 해결하려면 구체적인 코드 예제가 필요합니다. 프론트 엔드 개발자에게는 jQuery를 사용하는 것이 일반적인 작업 중 하나입니다. 그중에서도 .val() 메서드를 사용하여 양식 요소의 값을 가져오거나 설정하는 것은 매우 일반적인 작업입니다. 그러나 특정한 경우에는 .val() 메서드를 사용하지 못하는 문제가 발생할 수 있습니다. 이 문서에서는 몇 가지 일반적인 상황과 해결 방법을 소개하고 구체적인 코드 예제를 제공합니다. 문제 설명 jQuery를 사용하여 프런트 엔드 페이지를 개발할 때 때때로 다음과 같은 문제가 발생할 수 있습니다.

최신 웹 애플리케이션에서 웹 페이지 탐색 및 라우팅을 구현하는 것은 매우 중요한 부분입니다. JavaScript 기능을 사용하여 이 기능을 구현하면 웹 애플리케이션을 더욱 유연하고 확장 가능하며 사용자 친화적으로 만들 수 있습니다. 이 기사에서는 JavaScript 기능을 사용하여 웹 페이지 탐색 및 라우팅을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 웹 페이지 탐색 구현 웹 애플리케이션에서 웹 페이지 탐색은 사용자가 가장 자주 조작하는 부분입니다. 사용자가 페이지를 클릭하면

PHP에서 라우팅 규칙의 유연한 구성에 대한 구현 방법 및 경험 요약 소개: 웹 개발에서 라우팅 규칙은 URL과 특정 PHP 스크립트 간의 해당 관계를 결정하는 매우 중요한 부분입니다. 전통적인 개발 방법에서는 일반적으로 라우팅 파일에 다양한 URL 규칙을 구성한 다음 해당 URL을 해당 스크립트 경로에 매핑합니다. 그러나 프로젝트의 복잡성이 증가하고 비즈니스 요구 사항이 변경됨에 따라 각 URL을 수동으로 구성해야 하는 경우 매우 번거롭고 유연성이 없게 됩니다. 그렇다면 PHP로 구현하는 방법은 무엇입니까?

Yulong 8 Wine Master 시험과 관련된 질문은 무엇입니까? 이에 해당하는 대답은 무엇입니까? 시험에 빨리 합격하는 방법은 무엇입니까? Master of Wine 시험 활동에는 답변해야 할 질문이 많이 있으며, 답변을 참조하여 문제를 해결할 수 있습니다. 이 질문들은 모두 와인에 대한 지식과 관련이 있습니다. 참고가 필요하다면 Yakuza 8 Wine Master 시험 문제에 대한 답변의 자세한 분석을 살펴 보겠습니다! Rulong 8 Wine Master 시험 문제에 대한 자세한 설명 1. "와인"에 관한 질문. 하와이 왕족이 설립한 증류소에서 생산되는 증류주로, 하와이에서 대량으로 재배되는 사탕수수의 설탕을 원료로 만들어집니다. 이 와인의 이름은 무엇입니까? 답: 럼 2. "와인"에 관한 질문입니다. 사진은 건조 인삼과 건조 버무스로 만든 음료를 보여줍니다. 올리브를 첨가한 것이 특징이며 "코크니"로 알려져 있습니다.

많은 사용자가 win11 시스템 업데이트를 시도했지만 업데이트 후에 시작 메뉴를 사용할 수 없다는 사실을 발견했습니다. 이는 최신 업데이트에 문제가 있기 때문일 수 있습니다. Microsoft가 문제를 해결하기 위해 이러한 업데이트를 수정하거나 제거할 때까지 기다릴 수 있습니다. 문제를 함께 살펴보겠습니다. win11을 설치한 후 시작 메뉴를 사용할 수 없는 경우 해결 방법 방법 1: 1. 먼저 win11에서 제어판을 엽니다. 2. 그런 다음 프로그램 아래에 있는 "프로그램 제거" 버튼을 클릭합니다. 3. 제거 인터페이스에 들어가서 왼쪽 상단에 있는 "설치된 업데이트 보기"를 찾으세요. 4. 들어간 후에는 업데이트 정보에서 업데이트 시간을 확인하고 모든 최신 업데이트를 제거할 수 있습니다. 방법 2: 1. 또한 업데이트 없이 win11 시스템을 직접 다운로드할 수도 있습니다. 2. 이 제품은 가장 없는 제품입니다.
