国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3,vite開發(fā), 動態(tài)引入組件,同時動態(tài)設置組件的name,用于keep-alive緩存

這篇具有很好參考價值的文章主要介紹了vue3,vite開發(fā), 動態(tài)引入組件,同時動態(tài)設置組件的name,用于keep-alive緩存。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

如果有兩個頁面邏輯大都相同,咱們想到的第一個肯定是寫一個組件,然后兩個路由都指向這個組件。
那如果現(xiàn)在多添加一個需求:兩個頁面在切換路由時都需要緩存數(shù)據(jù),并且兩個頁面的緩存數(shù)據(jù)要求獨立。
這個需求很簡單:在router-view外層包裹一個keep-alive組件,指定緩存名稱即可。

OK,有了需求,問題出現(xiàn):
因為keep-alive是根據(jù)組件的name來指定緩存策略的,兩個路由用的同一個component,他們的name是相同的,這樣導致兩個頁面的數(shù)據(jù)不能獨立緩存,他們會共用緩存數(shù)據(jù)

so,咱們有了又有了新的想法:能否動態(tài)的設置component的name,引用同一個組件設置不同的name。
相信這也是大家能搜到我這篇文章的原因,嘿嘿。

答案肯定的


//生產(chǎn)打包,需要vite引入模塊
const viewsComponent = import.meta.glob('/src/views/**/*.vue')
//實際的組件路徑
const componentPath= '/src/views/test.vue'
//自定義組件name
const componentName = 'woshipipixia'
//構造動態(tài)路由
const dynamicRoute = {
  name: 'test',
  path: 'test',
  component: () => {
    //根據(jù)組件路徑動態(tài)獲取組件實例
    const component = viewsComponent[componentPath]
    if (!component) throw new Error(`${componentPath} 組件文件不存在!`)
    //重新構造組件,調整組件name
    return component().then(comp => ({
      ...comp.default,
      name: componentName,
    }))
  }
}
//添加路由
router.addRoute(dynamicRoute)

這樣的組件name會被設置為woshipipixia,咱們就可以用這個name 在keep-alive緩存文章來源地址http://www.zghlxwxcb.cn/news/detail-729818.html

到了這里,關于vue3,vite開發(fā), 動態(tài)引入組件,同時動態(tài)設置組件的name,用于keep-alive緩存的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包