搜尋

首頁  >  問答  >  主體

javascript - Vue用<router-view>渲染出來的元件互相之間如何通訊?

初學Vue,有些地方不太懂。
<router-view>放在了App.vue裡,如果想讓<router-view>渲染出的元件,像是login和main通訊,該怎麼寫呢?在login.vue裡點擊了按鈕,從後台獲取用戶的信息,再跳到main,把用戶的信息再main.vue裡顯示出來,用戶的信息要如何從login.vue傳遞到main.vue?
App.vue裡的程式碼:

<template>
  <p id="app">
      <router-view></router-view>
  </p>
</template>
<script>

vue-router的設定:

import Vue from 'vue'
import Router from 'vue-router'
import main from '@/components/main'
import login from '@/components/login'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/main',
      name: 'main',
      component: main
    },
    {
      path: '*',
      name: 'login',
      component: login
    }
  ]
})

login.vue的程式碼:

<template>
  <p>
    <router-link to="/mainPage">
          <button @click="login">
            登录
          </button>
        </router-link>
  </p>
</template>
漂亮男人漂亮男人2866 天前576

全部回覆(1)我來回復

  • 黄舟

    黄舟2017-05-19 10:24:38

    1,使用瀏覽器的localStorage/sessionStorage等
    2,用vuex來共享資料
    建立一個userInfo.js,裡面的state為使用者資訊。在登入之後將使用者資訊存在userInfo的state裡面,然後在main裡面就能取得到了

    回覆
    0
  • 取消回覆