亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

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

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

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

vue3-巧用指令

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

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

今天我們主要介紹一下如何使用指令來應(yīng)用這些插件,自定義滾動條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**

這里算是一個額外補充說明,有些同學(xué)在做表格拖拽時使用了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>
```

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

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

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

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

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
国产成人一区二区三区APP| 粗大黑人巨茎大战欧美成人免费看| 边摸边脱吃奶边高潮视频免费| 国产VIDEOSSEX精品| 极品粉嫩小泬无遮挡20P| 免费国产成人高清在线视频| 日本熟妇色熟妇在线视频播放| 无套内内射视频网站| 野花日本免费完整版高清版 | 日韩免费一区二区三区高清 | 国产无人区一码二码三码MBA| 久久久久久久久久精品电影| 人人鲁人人莫人人爱精品| 小雪被老外黑人撑破了视频| 又爽又黄又无遮挡的视频| 成人毛片18女人毛片免费| 果冻传媒免费观看4399飘雪| 女人18片毛片60分钟完整版| 无码AV不卡一区二区三区| 一二三四在线观看免费中文吗| 成年女人18级毛片毛片免费 | 国产乱沈阳女人高潮乱叫老 | 69无人区码一二三四区别| 国产A级三级三级三级| 久久久久亚洲AV无码专区首页网| 日韩毛片无码永久免费看 | 八戒八戒神马影院在线观看5 | 国产白丝JK捆绑束缚调教视频| 久久精品国产一区二区三区| 日韩激情在线小视频观看| 亚洲精品无码日韩国产不卡Av| ているの天堂资源WWW| 饥渴少妇AV无码影片| 人妻体内射精一区二区三四 | 无码人妻久久久一区二区三区免费| 一区二区三区高清AV专区| 国产成人精品日本亚洲语音| 免费少妇A级毛片| 亚洲AV极品无码专区亚洲AV | 护士爽到疯狂潮喷好爽| 人妻丰满熟妇av无码区免费蜜臀| 亚洲第一极品精品无码久久| 差差差很疼免费软件APP下载| 久久精品国产99国产精品导航| 日本婷婷色色电影| 伊人久久久久熟女AV大片| 国产毛片久久久久久国产毛片| 欧美极品在线观看| 亚洲欧洲老熟女AV| 国产92刮伦脏话对白| 男人边做边吃奶头视频| 亚洲成人av无码| 妇女性内射冈站HDWWW000| 免费无遮挡无码H肉动漫在线观看| 性欧美大战久久久久久久久| 啊灬啊灬啊灬快高潮了网站| 久别的草原在线看电视剧| 天天爽夜夜爽人人爽QC| AV人摸人人人澡人人超碰手机版| 精品国精品国产自在久国产应用男| 色 人 阁阁婷婷色五月破解| 8AV国产精品爽爽ⅤA在线观看| 精品高潮呻吟99AV无码| 偷窥无罪之诱人犯罪| YOUJIZZ中国少妇| 老师掀起裙子让我挺进| 亚洲AV涩涩涩成人网站在线播放| 催眠~凌~辱~学园 在线观看 | FIREEXⅩ性欧美HD护士| 久久人妻AV中文字幕| 性俄罗斯牲交XXXXX视频| 成人国产三级在线观看| 男女一起差差差差差| 亚洲婷婷五月综合狠狠| 国产性夜夜春夜夜爽| 少妇毛又多又黑一区二区| EEUSS影院免费最电影| 美女高潮无遮挡免费视频| 亚洲欧美日韩中文高清WWW| 国产免费永久精品无码| 丝袜美腿一区二区三区| WWW.一本色道88久久爱| 美女扒开尿口让男人桶| 亚洲线精品一区二区三区| 国产一区二区三区好的精华液 | 国产电影在免费播放在线观看| 人妻无码一区二区三区久| 装睡被陌生人摸出水好爽| 久久精品国产亚洲7777| 亚洲国产精品日韩AV专区| 国产美女裸体无遮挡免费视频高潮| 日本肉体裸交ⅩXXXBBBB| Y111111少妇影院无码| 欧美成人WWW免费全部网站| 真实国产乱啪福利露脸| 久久五月丁香中文字幕| 亚洲伊人久久综合成人网站| 精品久久久久久无码人妻蜜桃| 亚洲AV成人AV天堂| 国产欧美成AⅤ人高清| 无码中文精品专区一区二区| 国产精品SP调教打屁股| 头埋入双腿之间被吸到高潮| 国产成人无码AⅤ片在线观看| 睡着了强行挺进岳身体| 公和我做好爽添厨房| 色综合热无码热国产| 丰满妇女伦大片免费| 十八禁无遮无拦视频免费| 粉嫩av一区二区网站入口| 色综合色狠狠天天综合色| 丰满老师少妇久久久久久1| 少妇无码一区二区三区免费| 国产AV精品白浆一区二| 我国产码在线观看AV哈哈哈网站| 国产成人无码国产亚洲| 无码国产精品久久一区免费 | 伊人久久大香线蕉AV综合| 老太太BGMBGMBGM11| 中文天堂网在线最新版| 男朋友要再做一次才同意分手| 1000部无遮挡拍拍拍免费视频| 男同桌上课用手指进去了好爽| AV成人羞羞漫画永久入口| 欧亚精品一区三区免费| 成人影院永久免费观看网址| 四虎永久在线精品无码视频| 国产精品美女久久久久网站浪潮| 性丰满ⅩXXOOO性HD| 精品日本一区二区三区免费 | 亚洲AV午夜成人片精品网站| 精品人妻无码一区二| 野花影视免费观看高清| 没有被爱过的女人| JAVAPARSERHD高潮| 日日摸夜夜添夜夜添无| 国产成人AV三级在线观看| 无遮挡无码H纯肉动漫在线观看 | 国产三级精品三级在线专区1| 亚洲AV无码专区亚洲AV伊甸园| 久久国产精品免费一区二区三区| 中文字幕AV无码专区第一页 | 高潮喷奶水在线播放视频 | 国产一区二区三区导航 | 亚洲AV无码潮喷在线观看| 精品无码国产污污污免费网站国产| 一区二区精品视频| 欧美不卡一区二区三区| 丁丁一进一出动态图| 亚洲AⅤ熟女五十路中出| 久久国产免费直播| 9L国产精品久久久久麻豆| 色综合天天综合网国产| 国产香蕉尹人在线视频你懂的| 亚洲综合网国产精品一区| 嫩BBB槡BBBB搡BBBB| 第一次爱的人视频播放完整版免费 | av 无码av 丰满av| 兽交ZOOSKOO| 精品国内自产拍在线观看视频| 18禁美女裸体爆乳无遮挡动图| 日韩久久久久久中文人妻| 国产人澡人澡澡澡人碰视| 伊人久久大香线蕉AV最新午夜| 全免费A级毛片免费看网站| 国产激情一区二区三区成人| 亚洲色偷偷偷网站色偷一区人人藻| 男女无遮挡猛进猛出免费视频| 东北少妇高潮流白浆在线观看| 亚洲不卡无码永久在线| 男女裸交免费无遮挡全过程| 公咬着小娇乳H边走边欢视频| 亚洲精品国产A久久久久久| 农村妇女野外交性高清片| 国产成人一区二区三区视频免费| 亚洲日韩在线成人AV电影网站| 欧洲无人区码SUV| 国产又色又爽又刺激视频| 中文字幕一区二区三区乱码 | 日韩人妻中文字幕| 精品国产AⅤ一区二区三区4区| AV天堂永久资源网| 亚洲AⅤ成人精品无码| 免费久久人人爽人人爽AV| 公园小树中老年交易图片| 亚洲中文字幕无码第一区| 日韩国产成人精品视频| 久久6久久66热这里只是精品| 被陌生人带去卫生间啪到腿软| 亚洲AV自慰白浆喷水网站少妇| 欧美精品V国产精品V日韩精品| 国产午夜福利在线播放| AV天堂永久资源网| 亚洲国产成人精品无码区在线网站| 强壮公的侵犯让我高潮不断 | 人妻 色综合网站| 精品久久久久久无码专区| 车上震动A级作爱视频| 亚洲中文无码MV| 特黄AAAAAAAAA毛片免费视频|