Vue中router-view和component :is的區(qū)別解析
他們的作用都是可以更換組件的顯示
router-view
router-view是vueRouter的組件,主要是更新路由,可以不用跳轉(zhuǎn)到一個新的頁面,不會更新初始化函數(shù)mounted和created,只更新<router-view></router-view>標簽下所渲染的組件??梢圆挥靡虢M件。
缺點
一個頁面一個路由,跳轉(zhuǎn)要寫路由地址,更新tab樣式要傳參數(shù)
component :is=" "
component :is這個是vue的組件,is=要渲染的組件,不會更新路由,不會更新初始化函數(shù)mounted和created。刷新頁面后會跳回默認顯示頁面;
缺點
需要引入所有要顯示的組件,并且components:{聲明},
router-view用法
直接填寫跳轉(zhuǎn)路由,路由組件會渲染<router-view></router-view>標簽
//index.vue <div class="searchNav"> <router-link to="/a" >a</router-link> <router-link to="/b" >b</router-link> <router-view /> </div> //a.vue <template> <div> 這是a文件 </div> <template> //b.vue <template> <div> 這是b文件 </div> <template>
//router.js { path: '/index', name: 'index', component:() => import('index.vue'), redirect: '/a', //重定向到/a children: [ { path: '/a', name: 'a', component:() => import('a.vue'), }, { path: '/b', name: 'b', component:() => import('b.vue'), }, }
component :is=" "用法
用法很簡單,is=要渲染的組件,必須引用和聲明
在標簽頁的使用場景中用動態(tài)組件和路由的區(qū)別是什么呢
沒什么不同吧,都是動態(tài)渲染組件,只是路由封裝了url與展示的組件的關(guān)系,并可以切換任意多級抄組件,你用動態(tài)組件做的話肯定特別麻煩。
所以動態(tài)組件適用于一個頁面上某個區(qū)域的切zhidao換,路由適用于同時切換頁面以及多個層級的組件
這個需要根據(jù)具體的業(yè)務(wù)需求來。
路由的改變百是根據(jù)URL的狀態(tài)改變而改變,所以要改變路由視圖必須要對應(yīng)URL的改變。并且路由的頁面必須要現(xiàn)在Routes里注冊,雖然后面提供了動態(tài)的注冊router.addRouts()
而動態(tài)組件<component :is="componentA" :prop="prop"> 僅僅是綁定了變化的度組件,當然這些組件也必須在它們的父組件里注冊,也可以采用相同的方式進行傳參與事件,頁面問URL不需要發(fā)生改變。并且相對路由頁面更加靈活,可以根據(jù)自己的需要發(fā)生改變。
舉個栗子
在我以前寫的一個項目中,設(shè)計到echarts的多個圖表變換,如果要用路由頁面,則答需要重復(fù)配置多條規(guī)則,而使用動態(tài)組件,一個頁面內(nèi)就能搞定。并且能夠傳遞一些參數(shù)給這些子組件
到此這篇關(guān)于Vue中router-view和component :is的區(qū)別的文章就介紹到這了,更多相關(guān)router-view和component :is區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue數(shù)組響應(yīng)式操作及高階函數(shù)使用代碼詳解
這篇文章主要介紹了Vue數(shù)組響應(yīng)式操作及高階函數(shù)使用代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08vue中動態(tài)修改animation效果無效問題詳情
這篇文章主要介紹了vue中動態(tài)修改animation效果無效問題詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06將vue+nodejs項目部署到服務(wù)器上的實現(xiàn)
本文主要介紹了將vue+nodejs項目部署到服務(wù)器上的實現(xiàn),使用Express生成器部署和前端Vue項目部署,具有一定的參考價值,感興趣的可以了解一下2025-03-03vscode 配置vue+vetur+eslint+prettier自動格式化功能
這篇文章主要介紹了vscode 配置vue+vetur+eslint+prettier自動格式化功能,本文通過實例代碼圖文的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03Vue+elementUI?el-input輸入框手機號校驗功能
這篇文章主要介紹了Vue+elementUI?el-input輸入框手機號校驗功能,限制input框內(nèi)只能輸入數(shù)字,且為11位,通過實例代碼介紹了對輸入手機號做校驗的方法,感興趣的朋友跟隨小編一起看看吧2023-10-10