查看其他人写的组件代码的时候经常会发现使用了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
}
};
本文介绍了Vue.js中name属性的三个主要应用场景:组件自身调用实现递归、作为组件名称用于调试工具以及配合keep-alive排除指定组件的缓存。同时文章还提到了使用name属性时可能遇到的问题及解决方案。
18万+

被折叠的 条评论
为什么被折叠?



