Vue.js에서 쿼리 매개 변수를 어떻게 가져올 수 있습니까?
예 http://somesite.com?test=yay
.
가져올 방법을 찾을 수 없거나 순수한 JS 또는 라이브러리를 사용해야합니까?
Vue.js에서 쿼리 매개 변수를 어떻게 가져올 수 있습니까?
예 http://somesite.com?test=yay
.
가져올 방법을 찾을 수 없거나 순수한 JS 또는 라이브러리를 사용해야합니까?
답변:
route object 의 문서에 따르면 $route
구성 요소에서 객체에 액세스하여 필요한 것을 노출시킵니다. 이 경우
//from your component
console.log(this.$route.query.test) // outputs 'yay'
vue-router
이보다 더 많이 사용하지 않는다면 , 표준 JS 메소드를 사용해야하기 때문에 실제로 복제본이 될 것입니다.
vue-router
태그를 만들어 추가했습니다.
return next({ name: 'login', query:{param1: "foo" }, });
일이 작동하지 않습니다. 로그인 구성 요소 내에서 소품 param1
이 정의되지 않았습니다.
vue-route없이 URL을 분할하십시오
var vm = new Vue({
....
created()
{
let uri = window.location.href.split('?');
if (uri.length == 2)
{
let vars = uri[1].split('&');
let getVars = {};
let tmp = '';
vars.forEach(function(v){
tmp = v.split('=');
if(tmp.length == 2)
getVars[tmp[0]] = tmp[1];
});
console.log(getVars);
// do
}
},
updated(){
},
다른 솔루션 https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search :
var vm = new Vue({
....
created()
{
let uri = window.location.search.substring(1);
let params = new URLSearchParams(uri);
console.log(params.get("var_name"));
},
updated(){
},
location.href
있을 때 자신을 location.search
쉽게 사용할 수? developer.mozilla.org/en-US/docs/Web/API/… 예. var querypairs = window.location.search.substr(1).split('&');
또한 질의 이름-값 쌍을 '='로 나누면 값없이 명명 된 질의 매개 변수를 전달할 수 있기 때문에 항상 작동하지는 않습니다. 예를 들어 ?par1=15&par2
, '='로 나누면 1 개의 요소 만있는 tmp가 생성되므로 코드에서 par2에 예외가 발생합니다.
undefined
합니다 getVars['par2']
.
VueJS의 초보자를 돕는 자세한 답변 :
그리고 코드 자체 :
<script src="https://unpkg.com/vue-router"></script>
var router = new VueRouter({
mode: 'history',
routes: []
});
var vm = new Vue({
router,
el: '#app',
mounted: function() {
q = this.$route.query.q
console.log(q)
},
});
<script src="https://unpkg.com/vue-router"></script>
new Vue({ router, ... })
유효한 구문이 아닙니다.
을 사용하는 다른 방법 vue-router
은 쿼리 매개 변수를 라우터의 소품에 매핑하는 것입니다. 그런 다음 컴포넌트 코드의 다른 소품처럼 취급 할 수 있습니다. 예를 들어이 경로를 추가하십시오.
{
path: '/mypage',
name: 'mypage',
component: MyPage,
props: (route) => ({ foo: route.query.foo })
}
그런 다음 컴포넌트에서 소품을 정상적으로 추가 할 수 있습니다.
props: {
foo: {
type: String,
default: null
}
},
그런 다음 사용할 수 있으며 this.foo
원하는대로 할 수 있습니다 (예 : 감시자 설정 등).
이 날짜 부터 동적 라우팅 문서에 따라 올바른 방법 은 다음과 같습니다.
this.$route.params.yourProperty
대신에
this.$route.query.yourProperty
query
URL에서 쿼리를 가져 오는 데 사용해야 합니다. 문서에서 : $ route.params 외에도 $ route 객체는 $ route.query (URL에 쿼리가있는 경우)와 같은 다른 유용한 정보도 노출합니다.
vue-router를 사용할 수 있습니다. 아래 예가 있습니다.
URL : www.example.com?name=john&lastName=doe
new Vue({
el: "#app",
data: {
name: '',
lastName: ''
},
beforeRouteEnter(to, from, next) {
if(Object.keys(to.query).length !== 0) { //if the url has query (?query)
next(vm => {
vm.name = to.query.name
vm.lastName = to.query.lastName
})
}
next()
}
})
참고 : 에서 beforeRouteEnter
우리는 같은 구성 요소의 속성에 액세스 할 수없는 기능 : this.propertyName
내가 통과 왜 거긴 vm
에 next
function.It는 VUE는 instance.Actually 액세스에 recommented 방법 vm
은 VUE 예를 들어 서
서버가 PHP를 사용하는 경우 다음을 수행 할 수 있습니다.
const from = '<?php echo $_GET["from"];?>';
그냥 작동합니다.