VueJS: как метод массива `push` может быть вызван для объекта, но все еще работает? - PullRequest
0 голосов
/ 28 мая 2018

В следующем методе navigateToHome как можно использовать метод push массива Array.prototype.push для объекта ($router), где $router - основной объект маршрутизатора:

user.vue

<script>
    export default {
        data() {
            return {
                id: this.$route.params.id
            }
        },

        methods: {
            navigateToHome(){
                this.$router.push({path: '/'})
            }
        }
    }
</script>

main.js - здесь определен объект $ router

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import { routes } from './routes'

Vue.use(VueRouter);

const router = new VueRouter({
    routes,
    mode: 'history'
})

new Vue({
  el: '#app',
  router,
  render: h => h(App)
})

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Поскольку это не метод Array.prototype.push, это просто метод обновления истории навигации.

push (location: RawLocation, onComplete?: Function, onAbort?: Function) {
   this.history.push(location, onComplete, onAbort)
}

Посмотрите на исходный код: https://github.com/vuejs/vue-router/blob/dev/src/index.js#L141

0 голосов
/ 28 мая 2018

просто передайте строку вместо объекта.Вы пробовали: это?

this.$router.push('/')
...