vue 2의 컴포넌트 없이 vue-router를 사용할 수 있습니까?
매우 간단한 페이지가 있고 코드 몇 줄만 표시되며 vue-component가 없는 vue-router를 사용하고 싶습니다.
저는 이 제품을 구입하고 싶습니다.string "my-search-query"
루트 다음:
www.example.com/my-search-query
메인 Vue() 오브젝트에서 사용합니다.이게 가능합니까?
감사해요!
사용할 수 있습니다.vue-router
없이vue-component
메인 Vue() 어플리케이션오브젝트 경로 변경에 대한 알림은 계속됩니다.
당신은 그것을 얻을 수 있습니다."my-search-query"
에서 줄을 매다.www.example.com/#/my-search-query
다음과 같습니다.
const router = new VueRouter({
routes: [
{ path: '/:question' }
]
})
const app = new Vue({
el: '#app',
router,
watch: {
'$route.params.question': function(newVal, oldVal) {
alert(newVal === 'my-search-query');
}
}
});
@samayo님 덕분에 올바른 방향으로 안내해 주셔서 감사합니다!
라우터는 뷰 모델인스턴스의 일부이므로 라우터의 경로 값을 반환하는 계산 함수를 작성할 수 있습니다.예를 들어, 다음을 수행할 수 있습니다.
data: function() {
router: new VueRouter()
},
computed: function() {
routerPath: function() {
return this.router.currentRoute.path;
}
},
watch: function() {
routerPath: function(val) {
switch(val) {
case '/':
// @TODO: logic for home
break;
case '/path1':
var query = this.router.currentRoute.query;
// @TODO: logic form query params
break;
}
}
}
이것에 의해, 라우터가 이력을 관리합니다만, 코드를 컴포넌트로 분할할 필요는 없습니다.예를 들어, 저는 페이지가 작아서 모든 것을 컴포넌트로 분할하지 않고 동일한 뷰모델로 만들고 싶었습니다.
tom_h가 말했듯이window.location.pathname
경로 이름만 알고 싶을 때 사용합니다.경로 이름이 변경될 때 알림을 받으려면 먼저 경로 이름을 data(){} 개체로 초기화하고 다음과 같이 확인하십시오.
data () {
return {
path: window.location.pathname
}
},
watch: {
path (newpath, oldpath) {
alert('location path just changed from ' + newpath + ' to ' + oldpath )
}
}
언급URL : https://stackoverflow.com/questions/47678395/is-it-possible-to-use-vue-router-without-a-component-in-vue-2
'programing' 카테고리의 다른 글
Vue 계산 세터가 확인란과 함께 작동하지 않습니까? (0) | 2022.07.16 |
---|---|
Java VM은 몇 개의 스레드를 지원할 수 있습니까? (0) | 2022.07.16 |
javadoc에서 메서드를 참조하려면 어떻게 해야 합니까? (0) | 2022.07.16 |
Vue 랜덤라우터 컴포넌트 (0) | 2022.07.16 |
C에는 기능 프로그래밍을 위한 툴이 어떤 것이 있습니까? (0) | 2022.07.16 |