当前位置: 首页 > 科技观察

12个使用Vue的最佳实践

时间:2023-03-12 03:27:19 科技观察

随着VueJS的使用越来越广泛,出现了几种最佳实践并逐渐成为标准。这篇文章主要分享一些日常开发中有用的资源和技巧,废话不多说开始吧。1.在`v-for`中始终使用`:key`当您需要操作数据时,将key属性与v-for指令一起使用可以使程序保持恒定和可预测。这是必要的,以便Vue可以跟踪组件状态并持续引用不同的元素。key在处理动画或Vue过渡时很有用。没有键,Vue只是试图让DOM尽可能高效。这可能意味着v-for中的元素可能出现乱序,或者它们的行为不太可预测。如果我们对每个元素都有唯一的键引用,那么我们可以更好地预测Vue应用程序将如何准确地处理DOM操作。2.使用破折号命名事件在发出自定义事件时,最好使用破折号来命名,因为在父组件中,我们使用相同的语法来监听事件。因此,为了确保我们组件之间的一致性,并使您的代码更具可读性,请在两个地方都使用破折号名称。3.使用驼峰式声明props,在模板中使用连字符访问props。最佳做法是遵循每种语言的约定。在JS中,驼峰式大小写是标准的,在HTML中,它是破折号。所以我们相应地使用它们。幸运的是,Vue已经提供了驼峰式和破折号名称之间的转换,所以我们不必担心除了实际声明它们之外的任何事情。4.datashouldalwaysreturnafunction当声明组件数据时,data选项应该总是返回一个函数。如果返回一个对象,数据将在组件的所有实例之间共享。然而,大多数时候,我们的目标是构建可重用的组件,因此我们希望每个组件返回一个唯一的对象。我们通过在函数中返回数据对象来做到这一点。5.不要在同一个元素上同时使用`v-if`和`v-for`指令。为了过滤数组中的元素,我们可以很容易地同时对同一个元素使用v-if和v-for。问题是v-for指令在Vue中优于v-if指令。它遍历每个元素,然后检查v-if条件。这意味着即使我们只想渲染列表中的几个元素,我们也必须遍历整个数组。当然,这对我们没有任何好处。更聪明的解决方案是迭代计算属性。上面的例子可以重构成这样:这有几个优点:渲染效率更高,因为我们不会遍历所有元素,只有当依赖项发生变化时,过滤后的列表才会被重用。这种写法有助于将组件逻辑从模板中分离出来,使组件更具可读性。6.验证我们的props是否可以通过正确的定义来验证是很重要的。为什么?在设计大型构建项目时,很容易忘记道具的确切格式、类型和其他约定。如果你在一个更大的开发团队中,你的同事无法读心,所以让他们清楚如何使用你的组件。因此,我们可以只编写props验证,而不必费力地通过组件来确定props的格式从Vue文档中查看这个示例。7.组件全名使用驼峰式或破折号。组件的一般命名约定是使用驼峰式或破折号。无论我们使用哪一种,最重要的是始终保持一致。我认为camelCase工作得更好,因为大多数IDE自动完成支持它。8.基础组件应该有相应的前缀根据Vue样式指南,基础组件是只包含以下内容的组件:HTML元素附加基础组件第三方UI组件命名这些组件的一个好习惯是给它们加上前缀基础、V或App。同样,只要我们在整个项目中保持一致,就可以使用其中任何一个。BaseButton.vueBaseIcon.vueBaseHeading.vue这个命名约定的目的是让基本组件在文件系统中按字母顺序分组。此外,通过使用webpack导入功能,我们可以搜索符合命名约定模式的组件,并自动将所有组件作为全局变量导入到Vue项目中。9.单实例组件命名应以`The`为前缀与基本组件类似,单实例组件(每页使用一次,不接受任何props)应该有自己的命名约定。这些组件特定于我们的应用程序,通常是页脚、页眉或侧边栏。该组件只能有一个活动实例。TheHeader.vueTheFooter.vueTheSidebar.vueThePopup.vue10.保持指令简写一致Vue开发人员中的一种常见技术是使用指令简写。例如:@是v-on的简写:是v-bind的简写#是v-slot的简写在你的Vue项目中使用这些简写是很好的。但是在整个项目中创建某种约定,总是使用它们或从不使用它们,将使我们的项目更具凝聚力和可读性。11.不要在“created”和“watch”中调用方法Vue开发人员常犯的一个错误是他们不必要地调用created和watch中的方法。这背后的想法是我们希望在组件初始化后立即运行手表。但是,Vue对此提供了一个内置的解决方案,也就是我们经常忘记的Vuewatch属性。我们所要做的就是稍微重构一下手表并声明两个属性:1.handler(newVal,oldVal)-这是我们的手表方法本身。2.immediate:true-表示如果在wacth中声明,则立即执行里面的handler方法。如果为false,则和我们之前的效果一样,绑定的时候不会执行。12.模板表达式Forms应该只有基本的JS表达式。向模板添加尽可能多的内联功能是很自然的。但这会使我们的模板声明性降低,变得更加复杂,从而使模板变得非常混乱。为此,让我们看一下Vue样式指南中规范化字符串的另一个示例,看看它有多混乱。基本上,我们希望模板中的所有内容都直观且不言自明。为了保持这一点,我们应该将复杂的表达式重构为适当命名的组件选项。分离复杂表达式的另一个好处是值可以重用。总而言之,这些是12个常见的良好实践,它们将使我们的Vue代码更易于维护、更具可读性、更专业。希望这些技巧对你有用(因为它们绝对是我一直在努力记住的东西)。