Vue看了就会的8个小技巧


Posted in Vue.js onJanuary 21, 2021

1. 始终在 `v-for` 中使用 `:key`

在需要操纵数据时,将key属性与v-for指令一起使用可以让程序保持恒定且可预测是很有必要的。这样Vue就可以跟踪组件状态,并对不同的元素有一个常量引用。在使用动画或Vue转换时,如果没有key ,Vue只会尝试使DOM尽可能高效。这或许会导致v-for中的元素出现乱序,或行为难以预测。如果我们对每个元素都有唯一的键引用,就能更好地预测Vue应用程序将如何精确地处理DOM操作。

2. 使用驼峰式声明 props,并在模板中使用短横线命名来访问 props

最佳做法只是遵循每种语言的约定。在 JS 中,驼峰式声明是标准,在HTML中,是短横线命名。Vue 已经提供了驼峰式声明和短横线命名之间转换,所以除了实际声明它们之外,我们不用担心任何事情。

3. 在事件中使用短横线命名

在发出定制事件时,最好使用短横线命名,这是因为在父组件中,我们使用相同的语法来侦听该事件。所以为了确保我们各组件之间的一致性,让你的代码更具可读性,请在两个地方都坚持使用短横线命名。

4. 函数式组件

函数式组件是无状态,它无法实例化,没有任何的生命周期和方法。创建函数式组件也很简单,只需要在模板添加 functional 声明即可。一般适合只依赖于外部数据的变化而变化的组件,因其轻量,渲染性能也会有所提高。组件需要的一切都是通过 context 参数传递。它是一个上下文对象,具体属性查看文档。这里 props 是一个包含所有绑定属性的对象。

5. 重用相同路由的组件

开发小伙伴们常常会遇到多个路由解析为同一个Vue组件的情况。问题是,Vue出于性能原因,默认情况下共享组件将不会重新渲染,如果你尝试在使用相同组件的路由之间进行切换,则不会发生任何变化。如果你依然希望重新渲染这些组件,就可以通过在 router-view 组件中提供 :key 属性来实现。

6. $createElement

一般情况下,每个Vue实例都可以访问 $createElement 方法来创建和返回虚拟节点。例如,可以利用它在可以通过v-html指令传递的方法中使用标记。在函数组件中,可以将此方法作为渲染函数中的第一个参数进行访问。

7. 使用JSX

由于Vue CLI 3默认支持使用JSX,因此现在你可以使用JSX编写代码。如果尚未使用Vue CLI 3,则可以使用 babel-plugin-transform-vue-jsx 获得JSX支持。

8. 作用域插槽实现 UI 和业务逻辑的分离

我们常常会想复用一个组件的业务逻辑,但是不想使用该组件的 UI时,可以使用作用域插槽实现 UI 和业务逻辑的分离。作用域插槽大致的思路是将 DOM 结构交给调用方去决定,组件内部只关注业务逻辑,最后将数据和事件等通过 :item ="item" 的方式传递给父组件去处理和调用,实现 UI 和业务逻辑的分离。再结合渲染函数,就可以实现无渲染组件的效果。

以上就是Vue看了就会的8个小技巧的详细内容,更多关于vue 技巧的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
Vue实现省市区三级联动
Dec 27 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue backtop组件的实现完整代码
Apr 07 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
vue-element-admin项目导入和导出的实现
May 21 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
详细聊聊vue中组件的props属性
Nov 02 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
vue如何清除浏览器历史栈
May 25 Vue.js
VUE递归树形实现多级列表
Jul 15 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 #Vue.js
详解实现vue的数据响应式原理
Jan 20 #Vue.js
vue实现简易计算器功能
Jan 20 #Vue.js
vue使用过滤器格式化日期
Jan 20 #Vue.js
Vue实现简单计算器
Jan 20 #Vue.js
vue实现验证用户名是否可用
Jan 20 #Vue.js
vue实现按钮切换图片
Jan 20 #Vue.js
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
javascript中Math.random()使用详解
2015/04/15 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
Python基本数据类型详细介绍
2014/03/11 Python
python的即时标记项目练习笔记
2014/09/18 Python
python去除所有html标签的方法
2015/05/05 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
生产现场工艺工程师岗位职责
2013/11/28 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
python标准库ElementTree处理xml
2022/05/20 Python
Java实现简单小画板
2022/06/10 Java/Android