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 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Vue监视数据的原理详解
Feb 24 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
vue实现列表垂直无缝滚动
Apr 08 Vue.js
vue的项目如何打包上线
Apr 13 Vue.js
vue elementUI表格控制对应列
Apr 13 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遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
在视频前插入广告
2006/11/20 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
python strip()函数 介绍
2013/05/24 Python
python实现Floyd算法
2018/01/03 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
django Admin文档生成器使用详解
2019/07/22 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
2019/10/17 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
路政管理专业推荐信
2013/11/11 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
《社戏》教学反思
2014/04/15 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
离婚案件答辩状
2015/05/22 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Redis高并发缓存架构性能优化
2022/05/15 Redis