1. 程式人生 > 實用技巧 >Vue.js入門(13)

Vue.js入門(13)

序言

$nextTick是什麼?

解決什麼問題一、資料更新、檢視沒有更新

怎麼用

this.$nextTick(()=>{
   //把要執行的方法用this.$nextTick包起來
})

$nextTick就是用來知道什麼時候DOM更新完成的

vue如何獲取dom

先給標籤設定一個ref值,再通過this.$refs.domName獲取,例如:

<div ref="test"></div>

const dom = this.$refs.test

addEventListener、removeEventListener
mounted() {
    // 註冊滾動事件,在滾動的時候如果cascader開啟,就關閉它
const 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, }); } },
View Code

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

if(this.$cookies.get("groupId")){ this.$cookies.remove("groupId"); } _this.$cookies.set("groupId",groupId,31*24*60*60); _this.$cookies.set("hotelId",hotelId,31*24*60*60) //儲存酒店名稱 constlocalSrorage=window.localStorage; localSrorage.hotelName=hotelName; filters <td>{{item.star|format_star}}</td>
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

資料