1. 程式人生 > >Vue: export default中的name屬性到底有啥作用呢?

Vue: export default中的name屬性到底有啥作用呢?

前言

又開始一個全新的專案,每天都要元氣滿滿呀~在劃分模組和建立單頁面元件時,常常寫到name。巢狀路由中,index.vue極為常見,那麼在vue中,export default { name: 'xxx'} 中的name到底有啥作用呢?

開始

還是先回到官方的文件:https://cn.vuejs.org/v2/api/#name

官方描述

官方文件已經給我們描述了兩種使用情況,可能在開發中,並不是常用,舉例子說明一下。

實踐

1.元件自身的遞迴呼叫,就是在當前元件中,呼叫元件自己
componentA.vue

<template>
  <div class="component-a">
    <!-- 一個簡單的樹形元件 -->
    <tree :treeData="treeData"></tree>
  </div>
</template>
<script>
export default {
    name: 'component-a',
    data() {
      return {
        treeData: [{
          title: '樹形標題一',
          expand: true,
          children: [{
            title: '子標題1',
            expand: true
          },
          {
            title: '子標題2',
            expand: true,
            children: [{
              title: '子標題2.1',
              expand: true
            },
            {
              title: '子標題2.2',
              expand: true
            },
            {
              title: '子標題2.3',
              expand: true
            }]
          }]
      }
    },
    components: {
      // 自定義元件
      tree: {
        // 元件的名稱
        name: 'tree',
        // 模板
        template: ` 
            <ul>
               <li v-for="item in treeData">
                 <span>{{item.title}}</span>
	         <!-- 在元件內部呼叫自己 -->
                 <tree v-if="item.children" :treeData="item.children"></tree >
               </li>
            </ul>`,
        // 通過父元件傳遞的資料
        props: ['treeData']
      }
    },
    methods: {}
  }
</script>
<style lang="less" scoped></style>

看一下效果圖:

 樹形效果圖

2.當我們使用vue.js官方提供的除錯工具除錯時,可以看到元件的名稱,更好地定位

vue devtools

3.最後一種應該是使用比較多的情況,就是當我們使用 keep-alive時可以使用include和exclude指定需要快取和不需要快取的元件。指定的依據就是元件的name。

官方文件:https://cn.vuejs.org/v2/api/#keep-alive
keep-alive

總結

以上就是vue.js中元件export default 中name的三種作用。除錯和keep-alive是我們開發中常用的功能,關於元件的遞迴呼叫,還是第一次實踐,遞迴時,大家一定要注意遞迴的條件,否則會進入死迴圈。

另外呢,給大家找了幾篇關於元件遞迴的文章,希望給大家更多的參考~

https://blog.csdn.net/weixin_40814356/article/details/80283882

https://blog.csdn.net/zhaoxiang66/article/details/80940762 

剛好我自己的專案引入了iView框架,並且使用了其中的Tree元件,我們順便看看它的原始碼吧~

iView原始碼

好啦~萬聖節前夕,今晚一定要出去嗨哦,嘻嘻....生活會有彩蛋哦

歡迎留言指導,感謝~或者掃描下方二維碼,與我取得聯絡~  (記得備註:CSND喔~)