本人移动端开发者一枚,今年由于公司在业务上的变更,从零开始学习了vue以及一系列前端相关的东西,妥妥的开启了新手模式,由于一上手就是vue3.0了,所以碰到的很多问题都很难找到对应的解决方案,接下来就聊聊组件命名这件事情吧。

在vue2.0中想要给组件命名方式很简单,目前网上大部分的教程都是这种方式

<script>
    setup(){
        export default {
            name: 'MyComponentName'
        }
    }
</script>

甚至vue3.0中也可以写这种方式,但是如果采用script setup 语法糖的话这种方式就不可行了,原因是它会自动以文件名为主,不需要在写name属性。

<script setup>
 
</script>

由于我这边需要使用keep-alive对页面进行缓存,而include属性必须要指定组件的name才会生效,所以设置name成了不可避免要做的事情。解决方案也很简单,如下代码所示:

<script>
    export default {
      name: 'xxx',
    };
</script>
 
<script setup>
</script>

直接在script setup同级中再添加一个script即可,这种方式用来解决keep-alive页面缓存问题。

如果同时使用了typescript的话,可以配合插件直接在script标签中设置name,具体方式如下:
安装插件:vite-plugin-vue-setup-extend
然后在script 中直接设置name即可,这样就不用多写一个script脚本了。

<script lang="ts" setup name="xxx">
 
</script>

标签: none

添加新评论