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 相关文章推荐
vuex的数据渲染与修改浅析
Nov 26 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
Vue实现todo应用的示例
Feb 20 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
vue elementUI批量上传文件
Apr 26 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
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
js 事件小结 表格区别
2007/08/13 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
element实现合并单元格通用方法
2019/11/13 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
Windows下python3.7安装教程
2018/07/31 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
护士自荐信怎么写
2013/10/18 职场文书
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
会计岗位职责模板
2014/03/12 职场文书
大学生就业策划书范文
2014/04/04 职场文书
工程承包协议书
2014/04/22 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
学校食品安全实施方案
2014/06/14 职场文书
会计实训报告范文
2014/11/04 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
中班下学期幼儿评语
2014/12/30 职场文书