Vue杂项的基本使用(二)
杂项是Vue里一个比较零散的知识点,和大家分享一下学习的过程
组件的命名约定
当注册组件 (或者 prop) 时,可以使用 kebab-case (短横线分隔命名)、camelCase (驼峰式命名) 或 PascalCase (单词首字母大写命名)。
官方的文档说的挺详细的:
在组件定义中
components: {
// 使用 kebab-case 注册
'kebab-cased-component': { /* ... */ },
// 使用 camelCase 注册
'camelCasedComponent': { /* ... */ },
// 使用 PascalCase 注册
'PascalCasedComponent': { /* ... */ }
}
在 HTML 模板中始终使用 kebab-case
<kebab-cased-component></kebab-cased-component>
<camel-cased-component></camel-cased-component>
<pascal-cased-component></pascal-cased-component>
当使用字符串模式时,可以不受 HTML 大小写不敏感的限制。
递归组件
组件在它的模板内可以递归地调用自己。不过,只有当它有 name 选项时才可以这么做:
当使用 Vue.component 全局注册了一个组件,全局的 ID 会被自动设置为组件的 name。
举一个简单的递归例子:
1 | //在组件内调用自己本身,一定要添加判断(v-if),否则会死循环 |
简单的理解,也就是在组件A中使用上面这一串代码,可以再之后引入组件B,从而解决冲突的问题
内联模板
如果子组件有 inline-template 特性,组件将把它的内容当作它的模板,而不是把它当作分发内容。这让模板编写起来更灵活。
1 | <my-component inline-template> |
但是 inline-template 让模板的作用域难以理解。使用 template 选项在组件内定义模板或者在 .vue 文件中使用 template 元素才是最佳实践。
对低开销的静态组件使用v-once
尽管在 Vue 中渲染 HTML 很快,不过当组件中包含大量静态内容时,可以考虑使用 v-once 将渲染结果缓存起来,就像这样:
1 | Vue.component('terms-of-service', { |
以上就是我对Vue杂项的一些理解,希望大牛提出一些宝贵的意见,谢谢
-------------本文结束感谢您的阅读-------------