[VueJS] Vue-cli & Vue-router

  • Guten Tag,


    ich habe in meinem PHP Projekt angefangen mit VueJS zu arbeiten.
    In diesem gewissen Projekt frage ich mit Ajax Request Daten ab und benutze diese dann in meinen Vue Components.


    Nun habe ich als Einstiegspunkte eine index.html, diese beinhaltet ein Div mit der Id "app", als Element für die Vue Root instance. die Vue Root instance hat ein Template welches so aussieht:



    Das funktioniert auch alles ganz gut. Nun möchte ich nicht immer den selben Content anzeigen und dementsprechend auch andere Komponenten dafür benutzen.


    Dafür habe ich mir den Vue-Router installiert und möchte mit diesem jetzt anhand der URI abfragen können, was genau der User sehen soll.
    Nun habe ich mir den Vue-Router angeschaut und gemerkt, dass man anhand der URI ein Template angeben kann, welches angezeigt werden soll. Das sieht dann so aus:

    Code
    import content from './components/Content_component.vue';
    
    
    export default [
      {path: '/', component: content}
    ]

    Gibt es eine Möglichkeit, dass ich nur den Inhalt vom Div mit der ID "content" ersetze? Oder wie könnte ich das ansonsten sauber umsetzen?


    Mit freundlichen Grüßen
    Smile325

  • Der Beitrag ist zwar schon etwas älter und du wirst eventuell bereits eine Lösung gefunden haben, jedoch ist es vllt auch interessant für
    Neueinsteiger in diesem Forum, welche dein Beitrag finden.



    Du kannst weiter routes hier deklarieren, wie es im folgenden Link aufgeführt ist
    https://router.vuejs.org/guide…eacting-to-params-changes


    und auch parameter hinzufügen (das könnte für dich interessant werden, wenn du anhand einer id für artikel zum Beispiel die Inhalte anzeigen möchtest:


    Code
    { path: '/user/:id', component: User }



    Damit sich nur dein Content ändert musst in deinem main-template die Tags
    einbinden (index.html)

    Code
    <router-view></router-view>


    https://router.vuejs.org/guide/#html


    Sobald du auf ein Link drückst, welcher so definiert ist:

    Code
    <router-link to="/foo">Go to Foo</router-link>

    aktualisiert sich dein content.