当前位置: 首页 > Web前端 > JavaScript

[记录]js浮点数-echartsinpopup不显示-v-foranel-input的解决方法

时间:2023-03-27 13:51:11 JavaScript

1.js浮点数//加法0.1+0.2=0.300000000000000004//减法0.3-0.2=0.09999999999999998//乘法0.8*3=2.4000000000000004//除法0.3/0.1=2.9999999999999996//比较0.1+0.2===0.3//false(0.3-0.2)===(0.2-0.1)//falsejavaScript只有一个数字类型Number在内部,也就是说JavaScript语言的底层根本没有整数,所有的数字都是以IEEE-754标准格式的64位浮点数的形式存储的,1和1.0是一样的。因为有些小数在二进制表示中是无限的。所以处理的时候最好加上_.round()2.this.$nextTick()什么是Vue.nextTick()??在下一个DOM更新周期结束后执行的延迟回调。修改数据后立即使用此方法获取更新后的DOM。所以Vue.nextTick()回调函数中执行的应该是会操作DOM的js代码;nextTick()是在下一次dom更新数据后,延迟回调函数的调用。简单的理解就是:当数据更新到dom中渲染后,自动执行该函数。例如:什么时候需要使用Vue.nextTick()??1、Vue生命周期的created()钩子函数执行的DOM操作必须放在Vue.nextTick()的回调函数中,因为执行created()钩子函数时DOM并没有真正进行任何渲染,而这个进行DOM操作是徒劳的,所以必须将DOM操作的js代码放到Vue.nextTick()的回调函数中。与之相对应的是mounted钩子函数,因为钩子函数执行时已经完成了所有DOM的挂载。2、当项目中DOM元素的数据发生变化后,想基于新dom做一些事情时,需要将对新DOM的一系列js操作放到Vue.nextTick()的回调函数中;通俗的理解是:更改完数据后,想马上用js操作一个新的视图时需要用到3.使用第三方插件时,有些dom想重新应用插件vue产生的动态发生变化,你也会用到这个方法,这时候需要在$nextTick的回调函数中执行重新应用插件的方法。(示例:echarts)Vue.nextTick(callback)是如何工作的??原因是Vue异步执行dom更新。一旦观察到数据变化,Vue就会开启一个队列,然后将在同一个事件循环(eventloop)中观察数据变化的watcher推入这个队列。如果这个观察者被多次触发,它只会被推送到队列中一次。这种缓冲行为可以有效去除重复数据导致的不必要的计算和DOm操作。在下一个事件循环中,Vue将清除队列并执行必要的DOM更新。当你设置vm.someData='newvalue'时,DOM不会立即更新,而是在异步队列清空时进行必要的DOM更新,即在下一个事件开始时进行更新环形。如果此时你想根据更新后的DOM状态做一些事情,就会出现问题。.要等待Vue在数据更改后完成更新DOM,请在数据更改后立即使用Vue.nextTick(callback)。这样回调函数就会在DOM更新完成后被调用。问题描述:我想在popup中放一个barChart。不显示条形图。问题解决:this.$nextTick(()=>{this.barChartPopup=_.cloneDeep(this.barChartPopup);})原因:这是因为弹窗中的DOM还没有加载,DOM对3进行操作,v-for的解一个el-inputv-model直接绑定v-for循环下的成员会报错,因为v-model直接绑定了v-for迭代别名.这将无法修改v-for源数组,因为写入别名就像修改函数局部变量一样。但是可以通过索引下标来引用需要的数据,也可以达到同样的目的。例如: