vue的钩子函数

1.computed 计算属性

计算属性将被混入到 Vue 实例中。所有 getter 和 setter 的 this 上下文自动地绑定为 Vue

1..aPlus: {get: function () {return this.a + 1},set: function (v) {this.a = v - 1}}
2.. aPlus(){
    return this.$router.params
  }

这两种方法都可以,平时我们可以只写get,可以写成2形式,省略set方法,但是如果我们相对我们的计算属性进行修改,这个set方法不能省略。

2.methods 方法

这里只提一下它和computed的区别

methods 和 computed 看起来可以做同样的事情,单纯看结果两种方式确实是相同的。
然而,不同的是计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变
时才会重新求值。这就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会
立即返回之前的计算结果,而不必再次执行函数。相比而言,只要发生重新渲染,method 调用总会执行
该函数。

3.watcher

一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。

watch: {a: function (val, oldVal) {console.log('new: %s, old: %s', val, oldVal)},// 方法名b: 'someMethod',// 深度 watcher
    c: {handler: function (val, oldVal) { /* ... */ },deep: true},// 该回调将会在侦听开始之后被立即调用
    d: {handler: function (val, oldVal) { /* ... */ },immediate: true},e: [function handle1 (val, oldVal) { /* ... */ },function handle2 (val, oldVal) { /* ... */ }],
}

这里主要说深度watcher 加一个 deep:true,类似于深拷贝的深,可以监听数组和对象

4.生命周期函数

之前有总结过,这里说两点

Vue.nextTick(function () {// DOM 更新了
})

在vue做表格的时候,一般在操作完之后,要更新列表刷新数据。但是我们本地做一些表格的变换,不想发请求怎么办?我们可以利用nextTick,比如,<templeate v-if="tab === 'a' "></template> ,在我们更新完数据,这个表格因为没有更新数据,所以它没有变化,我们可以 this.tab = ' '  this.$nextTick(() => this.tab = 'a')

 

在 Vue 生命周期的 created() 钩子函数进行的 DOM 操作一定要放在 Vue.nextTick() 的回调函数中。原因是什么呢,原因是
1.在 created() 钩子函数执行的时候 DOM 其实并未进行任何渲染,而此时进行 DOM 操作无异于徒劳,所以此处一定要将 DOM 操作的 js 代码放进 Vue.nextTick() 的回调函数中。与之对应的就是 mounted 钩子函数,因为该钩子函数执行时所有的 DOM 挂载和渲染此时在该钩子函数中进行任何DOM操作都不会有问题 。

2.在数据变化后要执行的某个操作,而这个操作需要使用随数据改变而改变的 DOM 结构的时候,这个操作都应该放进 Vue.nextTick() 的回调函数中。

 

小结:

beforecreate : 可以在这加个loading事件,在加载实例时触发 
created : 初始化完成时的事件写在这里,如在这结束loading事件,异步请求也适宜在这里调用
mounted : 挂载元素,获取到DOM节点
updated : 如果对数据统一处理,在这里写上相应函数
beforeDestroy : 可以做一个确认停止事件的确认框
nextTick : 更新数据后立即操作dom

转载于:https://www.cnblogs.com/czy960731/p/9705368.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python英文字符串排序_Python根据内嵌的数字将字符串排序(sort by numbers embedded in strings)...

标签&#xff1a;import rere_digits re.compile(r‘(\d)‘)def embedded_numbers(s):pieces re_digits.split(s) # 切成数字与非数字pieces[1::2] map(int, pieces[1::2]) # 将数字部分转成整数return piecesdef sort_strings_with_embedded_numbers(ali…

定时运行python脚本并发送邮件_python实现定时发送邮件到指定邮箱

本文实例为大家分享了python实现定时发送邮件到指定邮箱的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下整个链路&#xff1a;传感器采集端采集数据&#xff0c;边缘端上传数据库&#xff0c;从数据库拿到数据。产品端有个自动出报告的需求&#xff0c;并且希望自动…

使用Guava的AbstractInvocationHandler正确完成代理

不太经常&#xff0c;但有时我们被迫使用java.lang.reflect.Proxy编写自定义动态代理类 。 这种机制的确没有魔力&#xff0c;而且即使您永远不会真正使用它&#xff0c;也值得知道-因为Java代理在各种框架和库中无处不在。 这个想法很简单&#xff1a;动态创建一个实现一个或…

php异常处理机制

转自&#xff1a;https://www.cnblogs.com/water0729/p/5802476.html php异常我们常接触到的就是error错误码1&#xff0c;warning错误码2&#xff0c;notice错误码8这三类。出现error了系统是挂掉了&#xff0c;但是warning和notice是我们可以捕捉并处理的 php配置项display_e…

JavaScript 事件处理详解

事件绑定与解绑&#xff1a; el.onEventName function (){} document.getElementById("dom").onclick function(){ } //绑定事件 document.getElementById("dom").onclick null; //移除绑定 dom0级事件&#xff0c;也就是最早期js处理事…

webbrowser设置横向打印_C# 日常记录:指定打印机/纸张/纸盒(静默打印)(不弹窗打印)WinForm篇...

我在WinForm 编程时一直有一个困扰很久的问题&#xff0c;有很多时候我们需要静默打印 或者不想使用默认的UI 进行打印设置 这个时候我的想法如下 1. 获取全部打印机 2.获取打印机能打什么样的纸3.将打印机设置传入并打印首选用到的打印机设置类System.Drawing.Printing.Printe…

mysql异步非阻塞方式_如何理解swoole异步非阻塞?

传统的apache2handler或php-fpm本质上都是短生命周期(请求后释放资源)的FastCGI运行模式. 请求来了,master进程会调用worker进程来处理,处理完后释放资源. 假设你在functions.php里定义了1000个函数,那么每次请求,都要重新定义一次,有一定的性能损失. 好处则是修改保存代码后,下…

IDEA中使用Maven

Maven的安装与使用 安装 1、下载&#xff0c;官网下载。 2、解压&#xff0c;存放路径中不可包含空格和中文。如&#xff1a;"E:\dev\workspace\maven\apache-maven-3.6.0" 3、配置本地仓库&#xff0c;进入 "conf/settings.xml" 中&#xff0c;在 setting…

Java应用程序中的内存泄漏和内存管理

Java平台最突出的功能之一是其自动内存管理。 许多人错误地将此功能转换为Java中没有内存泄漏 。 但是&#xff0c;事实并非如此&#xff0c;我给人的印象是&#xff0c;现代Java框架和基于Java的平台&#xff0c;尤其是Android平台&#xff0c;越来越与这种错误的假设相矛盾。…

js (jQuery)分组数据

function getobjArr (data) {var result [];data.HELMET.system 系统分类// console.log(data)$.each(data.HELMET, function (index_h, elem_h) {var h {id: index_h,name: elem_h,Projects: []}$(data.sonProjects).each(function (index_p, elem_p) {elem_p.AppCategory…

【前端组件】

下拉列表&#xff1a;https://harvesthq.github.io/chosen/#optgroup-support转载于:https://www.cnblogs.com/helww/p/9718396.html

python后台开发知识点_面试总结:鹅厂Linux后台开发面试笔试C++知识点参考笔记...

文章每周持续更新&#xff0c;各位的「三连」是对我最大的肯定。可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇)文章是由自己笔试面试腾讯的笔记整理而来&#xff0c;整理的时候又回顾了一遍&#xff0c;中间工作忙断断续续整理了半个月&#xf…

python用turtle画彩虹_Python利用turtle库绘制彩虹代码示例

语言&#xff1a;PythonIDE&#xff1a;Python.IDE需求做出彩虹效果颜色空间RGB模型&#xff1a;光的三原色&#xff0c;共同决定色相HSB/HSV模型&#xff1a;H色彩&#xff0c;S深浅&#xff0c;B饱和度&#xff0c;H决定色相需要将HSB模型转换为RGB模型代码示例&#xff1a;#…

MongoDB事实:商品硬件上每秒插入80000次以上

在尝试一些时间序列集合时&#xff0c;我需要一个大数据集来检查我们的聚合查询在增加数据负载的情况下不会成为瓶颈。 我们解决了5000万份文档&#xff0c;因为超出此数目我们仍然会考虑分片。 每次事件如下所示&#xff1a; {"_id" : ObjectId("5298a5a03b3…

scala-jdbc-scalike操作jdbc数据库

1, 引入maven依赖 <!-- 使用 sclaikeJDBC --><dependency><groupId>org.scalikejdbc</groupId><artifactId>scalikejdbc_2.11</artifactId><version>3.3.1</version></dependency><dependency><groupId>org…

day 17python 面对对象之继承

一&#xff1a;什么面向对象的继承&#xff1f; 比较官方的说法就是&#xff1a; 继承&#xff08;英语&#xff1a;inheritance&#xff09;是面向对象软件技术当中的一个概念。如果一个类别A“继承自”另一个类别B&#xff0c;就把这个A称为“B的子类别”&#xff0c;而把B称…

js 人民币小写金额转换为大写

function smalltoBIG(n) {var fraction [角, 分];var digit [零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖];var unit [[元, 万, 亿],[, 拾, 佰, 仟]];var head n < 0 ? 欠 : ;n Math.abs(n);var s ;for (var i 0; i < fraction.length; i ) {s (digit[Math.floor…

mybatis源码_Mybatis源码之SqlSession

SqlSession简介Mybatis是一个强大的ORM框架&#xff0c;它通过接口式编程为开发者屏蔽了传统JDBC的诸多不便&#xff0c;以简单的方式提供强大的扩展能力。其中的接口式编程就是指日常使用的Mapper接口&#xff0c;Mybatis借助动态代理实现了sql语句与Mapper的接口的动态绑定&a…

r语言kmodes_聚类分析——k-means算法及R语言实现

我们知道『物以类聚&#xff0c;人以群分』&#xff0c;这里并不是分类问题&#xff0c;而是聚类问题。两者主要区别在于&#xff0c;分类是将一组数据根据不同的类区分&#xff0c;已经知道有哪些类&#xff0c;也就是数据已经有了类的标签。而聚类是一种事先不知道有多少类&a…

VSCode安装jshint插件报错

Mac电脑上使用VSCode安装jshint插件时提示如下错误&#xff1a; Failed to load jshint library. Please install jshint in your workspace folder using npm install jshint or globally using npm install -g jshint and then press Retry. 按照提示&#xff0c;使用np…