色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > vue3-巧用指令

vue3-巧用指令

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-06-01 17:34:00 1654076040

不知道大家在工作中用上vue3了沒有,vue3好是好,但是有部分插件并沒有更新到3.0的,比如我比較喜歡的自定義滾動條overlayscrollbars,vue3直接使用overlayscrollbars-vue會報錯。

今天我們主要介紹一下如何使用指令來應用這些插件,自定義滾動條overlayscrollbars以及拖拽sortablejs。

vue3-巧用指令

**directive**

指令的話這里就不多說了,參考官方文檔([https://v3.cn.vuejs.org/api/options-assets.html#directives](https://link.zhihu.com/?target=https%3A//v3.cn.vuejs.org/api/options-assets.html%23directives)),overlayscrollbars以及sortablejs都是提供了js方式調(diào)用的,我們可以在指令里面進行插件的初始化。

**main.js:**

```js
import { createApp } from 'vue'
import directive from './directive'

const app = createApp(App)

directive(app)
```

**directive:**

```js
import { Sortable } from 'sortablejs'
import 'overlayscrollbars/css/OverlayScrollbars.css'
import OverlayScrollbars from 'overlayscrollbars'

export default function(app) {
  app.directive('focus', {
    mounted(el) {
      el.focus()
    }
  })
  app.directive('sortable', {
    mounted(el, binding) {
      const config = binding.value
      new Sortable(el, config || {})
    }
  })
  app.directive('OverlayScrollbars', {
    mounted(el, binding) {
      const config = binding.value
      const instance = OverlayScrollbars(el, config || {
        scrollbars: { autoHide: 'move' }
      })
      if (config && config.scrollReady) {
        config.scrollReady(instance)
      }
    }
  })
}
```

**vue:**

```js
<template>
  <ul v-sortable="sortableOptions" class="listBox">
    <li class="li" v-for="item in list" :key="item">{{ item }}</li>
  </ul>
  <div
    class="mobiReview"
    v-OverlayScrollbars="{ ...scrollOptions, scrollReady }"
  ></div>
</template>

<script setup>
import { reactive, toRefs } from 'vue'

const state = reactive({
  list: [1, 2, 3, 4, 5],
  scroll: {
    instance: null
  },
  scrollOptions: {
    className: 'os-theme-thin-dark',
    scrollbars: { autoHide: 'move' }
  }
})

function scrollReady(instance) {
  state.scroll.instance = instance
}

const sortableOptions = {
  animation: 150,
  sort: true,
  draggable: '.li',
  onUpdate: (event) => {
    event.stopPropagation()
    state.list.splice(event.newDraggableIndex, 0, state.list.splice(event.oldDraggableIndex, 1)[0])
  }
}

const { list } = toRefs(state)
</script>

<style lang="less" scoped>
.listBox {
  display: flex;
  list-style: none;
  > li {
    width: 100px;
    height: 100px;
    margin: 10px;
    background-color: red;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: move;
  }
}
.mobiReview {
  height: 500px;
  width: 300px;
  .box {
    height: 1000px;
  }
}
</style>
```

我們可以通過指令來傳遞初始化參數(shù),也可以獲取插件調(diào)用實例,比如scrollReady,當然如果你指令里面寫了默認參數(shù),也可以不用參數(shù)的傳遞。

```js
<div
    class="mobiReview"
    v-OverlayScrollbars
  ></div>
```

**sortablejs**

這里算是一個額外補充說明,有些同學在做表格拖拽時使用了sortablejs:

```js
<template>
  <el-table :data="tableData" style="width: 100%" row-key="id">
    <el-table-column type="index" width="50"></el-table-column>
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script setup>
import { reactive, toRefs, onMounted } from 'vue'
import { Sortable } from 'sortablejs'

const state = reactive({
  tableData: [{
    id: 1,
    date: '2016-05-02',
    name: '王小虎',
    address: '上海市普陀區(qū)金沙江路 1518 弄'
  }, {
    id: 2,
    date: '2016-05-04',
    name: '王小虎',
    address: '上海市普陀區(qū)金沙江路 1517 弄'
  }, {
    id: 3,
    date: '2016-05-01',
    name: '王小虎',
    address: '上海市普陀區(qū)金沙江路 1519 弄'
  }, {
    id: 4,
    date: '2016-05-03',
    name: '王小虎',
    address: '上海市普陀區(qū)金沙江路 1516 弄'
  }]
})

onMounted(() => {
  const tbody = document.querySelector('.el-table__body-wrapper tbody')
  Sortable.create(tbody, {
    onUpdate: (event) => {
      event.stopPropagation()
      state.tableData.splice(event.newDraggableIndex, 0, state.tableData.splice(event.oldDraggableIndex, 1)[0])
    }
  })
})

const { tableData } = toRefs(state)
</script>
```

假如不設置row-key會出現(xiàn)拖拽數(shù)據(jù)錯亂的情況,或者說在拖拽一個列表,而列表的key為index,也會出現(xiàn)這個問題。

因為大多數(shù)人喜歡把index作為key的賦值,而我們拖拽時index會變動,移除和添加時數(shù)組的索引會變,這會讓diff出現(xiàn)問題,就好比每一個人都有一個身份證,把某個人前面的人移除掉,這個人不可能就繼承前面那個人的身份證了,key對于這條數(shù)據(jù)應該是唯一的,不可變的,就像人的身份證一樣,故不要把index作為key來綁定。

**-** **End** **-**

更多關于“html5培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術的提升班,高品質(zhì)課程助理你實現(xiàn)夢想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍
91国偷自产一区二区三区成为亚洲经典 | 韩国一区二区视频| 色综合久久中文综合久久97| 国产午夜久久久久| 国产精品综合av一区二区国产馆| 精品成人a区在线观看| 精品无码三级在线观看视频| 久久久高清一区二区三区| 国产美女视频一区| 亚洲欧美另类久久久精品| xf在线a精品一区二区视频网站| 亚洲成年人网站在线观看| 欧美一区二区在线观看| 极品美女销魂一区二区三区免费| 久久精品亚洲乱码伦伦中文| 91一区一区三区| 奇米777欧美一区二区| 国产调教视频一区| 欧美色精品天天在线观看视频| 日本aⅴ免费视频一区二区三区| 国产情人综合久久777777| 欧美一a一片一级一片| 国产一区二区三区免费看| 亚洲欧洲性图库| 日韩你懂的在线播放| 91亚洲精华国产精华精华液| 日本免费新一区视频| 亚洲四区在线观看| 精品噜噜噜噜久久久久久久久试看| 成人av一区二区三区| 精东粉嫩av免费一区二区三区| 一级做a爱片久久| 国产精品久久久久婷婷二区次| 欧美岛国在线观看| 日韩欧美一级二级三级| 在线播放91灌醉迷j高跟美女| 99re8在线精品视频免费播放| 麻豆中文一区二区| 日韩av中文字幕一区二区三区| 自拍偷拍亚洲激情| 国产欧美日韩亚州综合 | 国产一区二区不卡老阿姨| 亚洲曰韩产成在线| 亚洲免费观看高清完整版在线观看 | 欧美一卡2卡3卡4卡| 色先锋aa成人| 99re热这里只有精品免费视频| 亚洲乱码日产精品bd| 国产亚洲美州欧州综合国| 日韩欧美国产精品一区| 宅男在线国产精品| 欧美一区二区免费观在线| 欧美日韩国产综合一区二区三区| 欧美在线免费视屏| 欧美中文字幕亚洲一区二区va在线| 波多野结衣在线aⅴ中文字幕不卡| 国产原创一区二区三区| 国产精品18久久久| 成人av综合一区| 成人性视频免费网站| 懂色av中文字幕一区二区三区 | 久久久久亚洲蜜桃| 国产三级欧美三级| 欧美韩日一区二区三区| 亚洲精品久久7777| 日韩av不卡一区二区| 韩国成人精品a∨在线观看| 国产一区二区久久| 成人福利视频网站| 欧美日韩日日夜夜| 精品国产伦理网| 亚洲视频在线一区观看| 视频在线观看91| 国产999精品久久久久久绿帽| 91网站黄www| 日韩视频一区二区| 亚洲视频在线观看三级| 午夜精品视频一区| 国内成人免费视频| 欧美吻胸吃奶大尺度电影| xnxx国产精品| 午夜视频一区二区| 波多野洁衣一区| 精品少妇一区二区三区日产乱码 | 日本午夜一本久久久综合| 国产精品自拍av| 欧美日本在线视频| 国产精品久久久久久久久久久免费看 | 成人黄色网址在线观看| 91麻豆精品国产91久久久久久久久 | 91麻豆自制传媒国产之光| 5月丁香婷婷综合| 国产精品五月天| 黑人精品欧美一区二区蜜桃| 欧美亚洲动漫制服丝袜| 国产精品久久久久一区二区三区| 九九九精品视频| 欧美日韩视频在线观看一区二区三区| 久久奇米777| 精品一区二区三区的国产在线播放| 欧美日韩中文另类| 亚洲人妖av一区二区| 国产精品一区二区三区网站| 日韩视频免费直播| 三级不卡在线观看| 欧美日免费三级在线| 亚洲综合小说图片| 欧美亚洲禁片免费| 婷婷综合久久一区二区三区| 欧美猛男gaygay网站| 亚洲一区二区三区四区中文字幕| 99视频精品免费视频| 亚洲男人天堂av网| 在线国产电影不卡| 视频精品一区二区| 欧美一区二区三区成人| 美女国产一区二区三区| 2021国产精品久久精品| 狠狠色综合日日| 欧美激情在线一区二区三区| 国产999精品久久久久久绿帽| 国产欧美va欧美不卡在线| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品你懂的| 成人av在线影院| 亚洲色图欧美在线| 欧美在线一区二区| 一区二区三区中文在线观看| 欧美日韩精品三区| 久久99国产精品久久99果冻传媒| 欧美www视频| av动漫一区二区| 免费成人av在线| 亚洲私人影院在线观看| 69堂亚洲精品首页| 丁香婷婷综合网| 日本成人中文字幕| 国产精品麻豆网站| 欧美一区二区三区的| 成人av电影免费在线播放| 午夜精品久久久久久| 国产欧美一区二区精品仙草咪| 91福利在线免费观看| 国产综合色产在线精品| 一区二区三区四区五区视频在线观看 | 欧美视频在线一区| 国产精品一区二区x88av| 一区二区在线观看免费| 精品va天堂亚洲国产| 欧美色中文字幕| 高清shemale亚洲人妖| 人禽交欧美网站| 亚洲一区二区三区四区在线 | www.亚洲色图.com| 国产精品一区二区免费不卡 | 欧美日韩国产综合一区二区三区| 国产传媒欧美日韩成人| 免费人成在线不卡| 亚洲永久免费av| 国产精品久久综合| 国产性天天综合网| 久久亚洲精品小早川怜子| 欧美日韩国产bt| 色悠悠亚洲一区二区| 99久久er热在这里只有精品66| 国产黄色精品视频| 国产电影精品久久禁18| 极品少妇一区二区| 精品在线一区二区三区| 蜜桃久久久久久| 免费久久99精品国产| 天天影视网天天综合色在线播放 | 欧美日韩一区二区不卡| 麻豆精品国产91久久久久久| 午夜日韩在线观看| 亚洲精选视频在线| 国产精品传媒视频| 中文字幕一区二区在线播放 | 日本久久电影网| 欧美亚一区二区| 91精品国模一区二区三区| 日韩三级视频在线观看| 欧美一级夜夜爽| 久久久www成人免费毛片麻豆| 精品国产免费久久| 国产欧美日韩麻豆91| 国产精品午夜春色av| 亚洲美女精品一区| 日韩国产精品久久久| 韩国v欧美v亚洲v日本v| 国产·精品毛片| 91福利国产精品| 欧美r级在线观看| 成人免费一区二区三区视频 | 欧美一区二区视频在线观看2022| 欧美日韩成人在线| 欧美国产一区二区| 日韩av一级电影| 成人av午夜电影| 日韩久久久精品|