2016-02-27 28 views

Trả lời

35

Nếu bạn đang sử dụng vue-router, bạn nên sử dụng router.go(path) để điều hướng đến bất kỳ tuyến đường cụ thể nào. Có thể truy cập bộ định tuyến từ bên trong một thành phần bằng cách sử dụng this.$router.

Nếu không, window.location.href = 'some url'; hoạt động tốt đối với các ứng dụng không phải một trang.

EDIT: router.go() thay đổi trong VueJS 2.0. Bạn có thể sử dụng router.push({ name: "yourroutename"}) hoặc chỉ router.push("yourroutename") ngay bây giờ để chuyển hướng.

https://router.vuejs.org/en/essentials/navigation.html

+1

Trong trường hợp của tôi sử dụng là để hướng đến mục tiêu khác không đơn trang –

+0

yea chỉ sử dụng 'window.location' – Jeff

+3

tôi đã nhận được:' ReferenceError chưa gặp: router không xác định' lỗi, Làm thế nào để tiêm router trong thành phần? – Saurabh

10

chỉ cần sử dụng:

window.location.href = "http://siwei.me" 

Không sử dụng vue-router, nếu không bạn sẽ được chuyển đến "http://yoursite.com/#!/http://siwei.me"

môi trường của tôi: nút 6.2.1, vue 1.0.21, Ubuntu.

+0

Tôi không thấy bất kỳ lý do gì, tại sao điều này phải ở trong ngoặc kép ..? – Moritz

+0

Trên thực tế [standardjs] (http://standardjs.com/) nói "Sử dụng dấu nháy đơn cho chuỗi ngoại trừ để tránh thoát." – Moritz

+0

này đã được một số thời gian trước đây, nhưng tôi thực sự tôi giải quyết điều này bằng cách sử dụng dấu nháy đơn, nhưng tôi đoán báo giá đôi cũng nên làm việc và có thể hữu ích trong các liên kết phức tạp. –

23

Theo các tài liệu, router.push có vẻ như phương pháp ưa thích:

To navigate to a different URL, use router.push. This method pushes a new entry into the history stack, so when the user clicks the browser back button they will be taken to the previous URL.

nguồn: https://router.vuejs.org/en/essentials/navigation.html

FYI: Webpack thiết lập & thành phần, ứng dụng trang duy nhất (nơi bạn nhập router thông qua chính .js), tôi phải gọi các chức năng của bộ định tuyến bằng cách nói:

this.$router 

Ví dụ: nếu bạn muốn chuyển hướng đến một tuyến đường gọi là "Home" sau khi một điều kiện được đáp ứng:

this.$router.push('Home') 
+0

Câu hỏi này không liên quan gì đến việc biên dịch (webpack). –

+3

Cảm ơn bạn đã downvote, mặc dù hầu hết mọi người sẽ phát triển với clue vue, webpack, router và store/vuex và có khả năng sẽ gặp vấn đề khi không thể gọi router. –

+3

đây phải là câu trả lời đúng – felipekm

Các vấn đề liên quan