vue项目中name的作用是什么?什么时候一定要用到?什么时候可以不用写name?
如题:
vue项目中name的作用是什么?什么时候一定要用到?什么时候可以不用写name?
这个东西:
export default { name:'xxx'
}
回答:
最常见的就是keep-alive里面用的最多
回答:
name
属性的作用主要有两点:
第一点:允许组件在模版 <template>
中递归调用自身,如果没有具体名字时将无法在模版中做到这一点;
第二点:为 vue-devtools
提供更友好的调试体验,具有名字的组件将获得更友好的各种开发提示。
不过现在 SFC
(单文件组件) 做了很多的优化,在常规的开发环境下,是可以通过 文件名 来推断组件名字的,因此在组件名与文件名一致的时候,绝大部分情况是不需要显示定义 name
属性的。
回答:
1.用来递归,一般用于 tree
// Foo.vue<template>
<div>
<Foo/>
</div>
<template/>
export default {
name:'Foo'
}
2.用来找到这个组件
一般用于一些 UI 框架封装,如 找子组件
export function findComponent(context, componentName) { const childrens = context.$children;
let children = null;
if (childrens.length) {
for (const child of childrens) {
const name = child.$options.name;
if (name === componentName) {
children = child;
break;
} else {
children = findComponentDownward(child, componentName);
if (children) break;
}
}
}
return children;
}
3.用于内置组件 keep-alive include/exclude 的配置
// 缓存以 Foo、bar 命名的组件<keep-alive include="Foo,Bar">
<component :is="xxx"></component>
</keep-alive>
4.用于 vue-devtools 调试工具方便定位
没有定义 name 的组件,会被识别为 <Anonymous component>(匿名组件)。
以上是 vue项目中name的作用是什么?什么时候一定要用到?什么时候可以不用写name? 的全部内容, 来源链接: utcz.com/p/936562.html