suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Laravel – wie Vue-Router Routen asynchron lädt

Aktuelle Projektbenutzerberechtigungsabhängigkeiten:

Da Berechtigungen kompliziert sind und die Routen im Frontend fest codiert sind, muss ein normaler Mitarbeiter nach der Anmeldung Hunderte oder sogar Tausende von Routen und entsprechenden Komponenten laden.

  1. Leistungsprobleme

  2. Eine Berechtigungsüberprüfung ist sowohl im Frontend als auch im Backend erforderlich. Der Gedanke daran bereitet mir Kopfschmerzen

Basierend auf diesen beiden Überlegungen haben wir beschlossen, die Routen in die Datenbank zu schreiben, und dann weist das Backend basierend auf den Berechtigungen des angemeldeten Benutzers Routen dynamisch dem Frontend zum Laden zu.

Aber wenn ich Ajax zum Anfordern im Frontend verwende, stelle ich fest, dass Routing-Daten immer aus dem Hintergrund angefordert werden, nachdem die Vue-Initialisierung abgeschlossen ist (d. h. die Route wurde geladen)

Der angeforderte Code wird auf die gleiche Weise in main.js und vor dem Erstellen des Vue-Lebenszyklus platziert

const routes = [];

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

const app = new Vue({
    router,
    el: '#app',
    data: routes,
    template: '<App/>',
    components: { App },
    created: function () {
        const self = this
        axios.get('https://service.it/api/routes')
            .then(function (response) {
                self.routes = response.data;
            })
            .catch(function (error) {
                console.log(error)
            })
    }
})

Bitte fragen Sie den Front-End-Master nach Antworten!

PHPzPHPz2871 Tage vor879

Antworte allen(2)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-16 16:50:20

    vue-router@2.2.0开始,router.addRoute(routes)动态添加路由

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-05-16 16:50:20

    使用axios 先ajax请求得到路由配置 再初始化vue实体

    Antwort
    0
  • StornierenAntwort