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+iview分页组件的封装
Nov 17 Vue.js
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
vue中使用echarts的示例
Jan 03 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
Vue接口封装的完整步骤记录
May 14 Vue.js
详解Vue项目的打包方式(生成dist文件)
Jan 18 Vue.js
vue3获取当前路由地址
Feb 18 Vue.js
Vue全局事件总线你了解吗
Feb 24 Vue.js
vue实现登陆页面开发实践
May 30 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
PHP 第三节 变量介绍
2012/04/28 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
javascript数据类型详解
2017/02/07 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
Python多线程编程(五):死锁的形成
2015/04/05 Python
python回调函数用法实例分析
2015/05/09 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python3 socket同步通信简单示例
2017/06/07 Python
Python语言的变量认识及操作方法
2018/02/11 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
英国二手物品交易网站:Preloved
2017/10/06 全球购物
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
思想专业自荐信范文
2013/12/25 职场文书
孔庙导游词
2015/02/04 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫
Redis分布式锁的7种实现
2022/04/01 Redis
python内置模块之上下文管理contextlib
2022/06/14 Python