查看其他人写的组件代码的时候经常会发现使用了name属性,今天来把name属性的经常使用的场景归纳一下
1.组件自身调用,递归组件
当在组件中需要调用自身的时候,可以通过name属性来使用
2.使用vue-tools工具时的组件名称
当使用调式工具时,组件的名称是通过name属性来设置的
3.移除keep-alive状态下组件自动缓存功能
我们知道,在组件外使用了keep-alive导致我们第二次进入的时候页面不会重新请求ajax,即mounted() 钩子函数只会执行一次
解决的办法一个增加activated()函数,每次进入新页面的时候再获取一次数据(此处可以了解一下keep-alive状态下的activated()函数和deactivated()函数)
另外一个办法就是keep-alive中增加 exclud=“name”,移除选中页面的缓存
<keep-alive exclude="name">
<router-view />
</keep-alive>
需要特别注意的是:
name的使用过程中报错
[Vue warn]: Do not use built-in or reserved HTML elements as component id: ****
解决办法:
在component里面注册组件的时候避免用html已有的标签来接收组件;
import header from '@/components/header/header';
export default{
components: {
'header': header
}
};