vue 監聽路由變化


<script>
   // 引入 Tabbar組件
   import  mTabbar from  './components/Tabbar'
   import  mTabbarItem from  './components/TabbarItem'
   // 引入 vuex 的兩個方法
   import  {mapGetters, mapActions} from  'vuex'
 
   export  default  {
     name:  'app' ,
     // 計算屬性
     computed:mapGetters([
       // 從 getters 中獲取值
       'tabbarShow'
     ]),
     // 監聽,當路由發生變化的時候執行
     watch:{
       $route(to,from){
         if (to.path ==  '/'  || to.path ==  '/Prisoner'  || to.path ==  '/Goods'  || to.path ==  '/Time'  || to.path ==  '/Mine' ){
           /**
            * $store來自Store對象
            * dispatch 向 actions 發起請求
            */
           this .$store.dispatch( 'showTabBar' );
         } else {
           this .$store.dispatch( 'hideTabBar' );
         }
       }
     },
     beforeRouteEnter (to, from, next) {
       // 在渲染該組件的對應路由被 confirm 前調用
       // 不!能!獲取組件實例 `this`
       // 因為當鈎子執行前,組件實例還沒被創建
     },
     beforeRouteUpdate (to, from, next) {
       // 在當前路由改變,但是該組件被復用時調用
       // 舉例來說,對於一個帶有動態參數的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉的時候,
       // 由於會渲染同樣的 Foo 組件,因此組件實例會被復用。而這個鈎子就會在這個情況下被調用。
       // 可以訪問組件實例 `this`
     },
     beforeRouteLeave (to, from, next) {
       // 導航離開該組件的對應路由時調用
       // 可以訪問組件實例 `this`
     },
     components:{
       mTabbar,
       mTabbarItem
     },
     data() {
       return  {
         select: "Building"
       }
     }
   }
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM