Vue.js入門(13)
阿新 • • 發佈:2020-10-18
序言
$nextTick是什麼?
解決什麼問題一、資料更新、檢視沒有更新
怎麼用
this.$nextTick(()=>{ //把要執行的方法用this.$nextTick包起來 })
$nextTick就是用來知道什麼時候DOM更新完成的
vue如何獲取dom
先給標籤設定一個ref值,再通過this.$refs.domName獲取,例如:
<div ref="test"></div>
const dom = this.$refs.test
addEventListener、removeEventListenermounted() { // 註冊滾動事件,在滾動的時候如果cascader開啟,就關閉它View Codeconst ele = document.getElementsByClassName('main')[0]; if (ele) { ele.addEventListener('scroll', this.listenScroll, { passive: true, }); } }, beforeDestroy() { // 移除滾動事件監聽 const ele = document.getElementsByClassName('main')[0]; if (ele) { ele.removeEventListener('scroll', this.listenScroll, { passive: true, }); } },
vue中的ref和$refs
ref有三種用法:
1、ref 加在普通的元素上,用this.ref.name 獲取到的是dom元素
2、ref 加在子元件上,用this.ref.name 獲取到的是元件例項,可以使用元件的所有方法。
3、如何利用 v-for 和 ref 獲取一組陣列或者dom 節點
https://www.cnblogs.com/xumqfaith/p/7743387.html
<divclass="search-formclearfix"@keydown="bindEnter($event)"> //繫結enter事件 bindEnter(e){ this.$enterSearch(e,this.search); }cookie
filters: { format_star(str) { switch (str) { case "FiveStar": return "五星"; break; case "QuasiFiveStar": return "準五星"; break; case "FourStar": return "四星"; break; case "QuasiFourStar": return "準四星"; break; case "ThreeStar": return "三星"; break; case "QuasiThreeStar": return "準三星"; break; case "Economical": return "經濟型"; break; default: return "請選擇"; } }View Code
async
asyncfunctionsearchPermissions(){ scope const{row}=scope;Vue.nextTick()用於延遲執行一段程式碼。
vue 中的const {XXX } =this 的作用效果
樣例1:
const { xxx } = this.state;
上面的寫法是es6的寫法,其實就相當於:
const xxx = this.state.xxx
樣例2:
const {comment,index,deleteComment} = this
上面的這句話是一個簡寫,最終的含義相當於
const comment = this.comment
const index = this.index
const deleteComment = this.deleteComment