亚洲国产综合在线-亚洲国产综合网-亚洲国产综合人成综合网站00-亚洲国产综合久久精品-www成人国产在线观看网站-www成年人

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

當(dāng)前位置:首頁(yè)  >  IT問(wèn)答庫(kù)  >  Web基礎(chǔ)知識(shí)

Vue3-巧用指令

發(fā)布:web前端培訓(xùn) 2022-02-09 14:50

推薦答案

  Vue3-巧用指令不知道大家在工作中用上vue3了沒(méi)有,vue3好是好,但是有部分插件并沒(méi)有更新到3.0的,比如我比較喜歡的自定義滾動(dòng)條overlayscrollbarsvue3直接使用overlayscrollbars-vue會(huì)報(bào)錯(cuò)。

  今天我們主要介紹一下如何使用指令來(lái)應(yīng)用這些插件,自定義滾動(dòng)條overlayscrollbars以及拖拽sortablejs

v2-c7f6420386db61816337233c3a8001e5_1440w

  directive

  指令的話這里就不多說(shuō)了,參考官方文檔(https://v3.cn.vuejs.org/api/options-assets.html),overlayscrollbars以及sortablejs都是提供了js方式調(diào)用的,我們可以在指令里面進(jìn)行插件的初始化。

main.js

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

const app = createApp(App)

directive(app)


directive

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

<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>

我們可以通過(guò)指令來(lái)傳遞初始化參數(shù),也可以獲取插件調(diào)用實(shí)例,比如scrollReady,當(dāng)然如果你指令里面寫(xiě)了默認(rèn)參數(shù),也可以不用參數(shù)的傳遞。

<div

    class="mobiReview"

    v-OverlayScrollbars

  ></div>

sortablejs

這里算是一個(gè)額外補(bǔ)充說(shuō)明,有些同學(xué)在做表格拖拽時(shí)使用了sortablejs

<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會(huì)出現(xiàn)拖拽數(shù)據(jù)錯(cuò)亂的情況,或者說(shuō)在拖拽一個(gè)列表,而列表的keyindex,也會(huì)出現(xiàn)這個(gè)問(wèn)題。

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

最新問(wèn)答資訊

01 unity用什么編程語(yǔ)言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語(yǔ)言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語(yǔ)言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語(yǔ)言 可以
5062 人關(guān)注

04 c語(yǔ)言難學(xué)嗎?c語(yǔ)言學(xué)好要多久?

語(yǔ)言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計(jì)要多久?報(bào)速成班靠譜嗎?

平面 設(shè)計(jì) 學(xué)習(xí) 時(shí)間
4238 人關(guān)注

相關(guān)問(wèn)題

html是什么語(yǔ)言?html學(xué)習(xí)難嗎?

在it行業(yè)涉及到各種專業(yè)的知識(shí),作為一個(gè)工作人員掌握一些基礎(chǔ)的...

前端技術(shù)有哪些?

互聯(lián)網(wǎng)行業(yè)的發(fā)展速度很快,特別是在前端這個(gè)崗位,如果不能時(shí)刻...

web前端開(kāi)發(fā)需要掌握哪些知識(shí)

同時(shí)學(xué)會(huì)css,css是用來(lái)美化html頁(yè)面的為頁(yè)面提供布局和格式,最...

javascript是干什么的?JavaScript日常用途是什么

同學(xué),你好!javascript是干什么的?JavaScript日常用途是什么?...

web前端有哪些框架?

同學(xué)您好,web前端總共有11個(gè)框架,因?yàn)閣eb前端框架可以很大程度...

學(xué)web前端需要學(xué)什么知識(shí)

更多關(guān)于web前端培訓(xùn)的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教...

測(cè)一測(cè)
你知道多少I(mǎi)T梗

蜜臀少妇人妻在线| 国产午夜福利100集发布| 无码精品人妻一区二区三区蜜桃| 国内精品久久久久影院中文字幕| 亚洲综合无码一区二区痴汉| 欧美国产日韩久久MV| 岛国精品一区免费视频在线| 性XXXXX欧美极品少妇| 久久久久久久人妻无码中文字幕爆 | 玉蒲团之玉女心经| 人妻系列无码专区69影院| 国产精品露脸视频观看| 亚洲熟妇无码A∨| 欧美性猛交XXXX免费看| 国产激情久久久久影院小草| 亚洲熟妇AⅤ无码一区二区| 欧美人与动欧交视频| 国产精华液和欧美的精华液的区别 | FREE性丰满HD性欧美| 脱岳裙子从后面挺进去电影| 精品人无码一区二区三区| 99精品久久久久精品双飞| 天天摸天天添天天爱| 久久精品国产亚洲AV成人| ZOOMSERVO兽狗产品优势| 无遮挡边吃奶边做刺激视频| 久久中文字幕AV不卡一区二区| 被蹂躏的她 电影| 亚洲AV色香蕉一区二区| 麻花传媒剧国产MV高清播放| 成人亚洲欧美成ΑⅤ人在线观看 | 二三四五六七无产乱码| 亚洲精品第一国产综合精品99| 女人浓毛巨茎ⅩXXOOO| 国产精品毛片无码一区二区蜜桃| 一边做一边喷17P| 少妇VIDES裸体BBWWHD| 久久99精品久久久久子伦| 被两个两个黑人吃奶4P| 亚洲成A人片在线观看无码专区 | 亚洲高清乱码午夜电影网| 欧美国产SE综合| 国产无遮挡裸体免费视频在线观看| 浴室人妻的情欲HD三级| 天堂在/线资源中文在线BT| 久久熟妇人妻午夜寂寞影院| 嗯啊开小嫩苞HHH好深男男| 亚洲欧美中文日韩在线V日本| 人人爽人人爽人人爽人人片AV| 好男人好资源影视在线| ZOMBIE老头SUPREME| 亚洲成色WWW久久网站夜月| 轻点灬大JI巴太粗太长了| 国精产品砖一区二区三区糖心 | 亚洲人成网站18禁止大APP| 人人爽人人爽人人爽| 精品人妻一区二区三区免费| 办公室爆乳女秘在线观看| 亚洲精品无码午夜福利中文字幕| 人人澡人摸人人添| 精品一区二区三区在线视频| 丁香五月天天综合亚洲| 野花韩国高清免费神马百度| 手机看片福利永久| 蜜桃AV免费一区二区三区| 国产老熟女狂叫对白| A级毛片免费全部播放无码| 亚洲AV无码专区在线电影天堂| 人妻丰满AV中文久久不卡| 精品无码黑人又粗又大又长AV | 中文精品久久久久人妻| 五月婷日韩中文字幕| 欧美乱强伦XXXXX高潮| 狠狠色噜噜狠狠狠狠7777| 超级YIN荡的公司聚会| 一本岛V免费不卡一二三区| 天天影视性色香欲综合网| 内射中出无码护士在线| 国产在线乱码一区二区三区| 宝贝你的奶好大我想吃| 亚洲性色AV片在线观看网址| 同性男男黄G片免费网站| 欧美成人免费影片区二区| 精品国产AⅤ一区二区三区4区| 尺码最大的国产SUV| 征服丝袜旗袍人妻| 亚洲AV无码专区国产乱码4 | 老阿姨哔哩哔哩B站肉片茄子芒果 浪货趴办公桌~H揉秘书电影无码 | 少妇人妻AV无码专区| 免费男同GAY片AV网站| 国产专区国产AV| 大象成品W灬源码1| 18禁无码无遮挡H动漫免费看 | 日韩人妻无码精品久久久不卡| 久久丫免费无码一区二区| 国产人成高清在线视频99最全资| 把腿张开老子臊烂你多p晓晓| 啊灬啊灬快点灬用力岳| 成人爽A毛片在线视频淮北| 国产精品99久久99久久久| 狠狠久久精品中文字幕无码| 久久久久亚洲AV成人网| 女人ASS人体下部PICS| 日韩Av一区二区三区| 日本午夜免费福利视频| 无码人妻精品一区二区三区99不卡 | 无码字幕AV一区二区三区| 一面膜上边一面膜下边韩国| 一区二区三区鲁丝不卡麻豆| YYYY11111少妇无码影院| 精品国产一区二区三区性色AV| 日本熟妇WWW色视频在线播放| 亚洲AV永久无码精品无码少妇| 中文字幕无码成人片| 国产欧美久久一区二区 | 狠狠做深爱婷婷久久综合一区| 久久婷婷五月综合97色直播 | 皇上捏住宫女的巨峰| 久久亚洲色WWW成人男男| 丝瓜草莓秋葵污旧版APP无限看| 亚洲AV无码乱码忘忧草亚洲人| CHINESE裸体男野外GAY| 精品国产一区二区AV麻豆不卡| 久久久AV波多野一区二区| 日韩人妻无码系列专区| 影音先锋每日AV色资源站| 国内精品伊人久久久影视| 人妻AⅤ中文字幕| 亚洲一区二区三区在线播放无码 | 亚洲AV无码久久寂寞少妇| 中国亚洲女人69内射少妇| 大香伊蕉在人线国产最新75| 国产精品久久这里只有精品| 久久精品国产只有精品2020| 日本熟妇色熟妇在线视频播放 | 国产精品露脸国语对白| 麻豆XXXXXX在线观看| 人人妻人人躁人人爽精品 | JΑPΑN丰满人妻HDXXXX| 精品国产YW在线观看| 日日摸夜夜添夜夜添影院| 亚洲欧美综合一区二区三区| AV无码不卡一区二区三区| 国产精品自产拍高潮在线观看| 久久久久久久99精品免费观看| 日本熟妇裸交ⅩXX视频全过程| 亚洲欧美日韩国产手机在线| 大陆熟妇丰满多毛XXXX| 麻豆国产原创视频在线播放| 亚洲爆乳成AV人在线视菜奈实| 成人午夜福利免费无码视频 | 老少配XXOO老少配| 无码AV免费精品一区二区三区| 成年女人A级毛片免费观看| 人妻穿丁字裤陪客户| 中文无码伦AV中文字幕在线| YIN荡到骨子里的SAO货| 蜜臀AV午夜一区二区三区| 一区二区三区毛片| 韩国三级中文字幕HD| 少妇性活BBBBBBBBB四川| 又紧又大又爽精品一区二区| 国产一产二产三精华液| 欧美成人一区二区| 亚洲欧美日韩综合一区| 国产95在线 | 欧美| 日韩精品一区二区亚洲AV观看| 成人白浆超碰人人人人| 人妻丰满熟妇av无码区HD优| 99热精国产这里只有精品| 久久精品人妻一区二区三区av| 天堂资源在线WWW中文| JIZZ成熟丰满韩国女人.| 男人扒开添女人下部免费视频| 中文字幕被公侵犯的漂亮人妻| 美女脱个精光露出奶头和尿口 | 国产精品久久久爽爽爽麻豆色哟哟| 强 暴 疼 哭 处 女| 重生后我抛弃了负心公主| 韩国青草无码自慰直播专区| 调教小SAO货撅起打屁股作文| 88久久精品无码一区二区毛片| 精品无码国产自产拍在线观看蜜桃| 亚洲精品无码久久| 精品人妻无码一区二区色欲产成人 | 粗大的内捧猛烈进出视频嘿嘿视频| 私人影院无在线码免费| 国产精品久久久久久婷婷| 亚洲乱码中文论理电影| 精品国产乱码久久久久久蜜桃免费 | 日产精品高潮呻吟AV久久| 八戒八戒神马2021| 揉着我的奶从后面进去| 成人免费无遮挡在线播放| 少妇又色又紧又爽又刺激视频| 厨房征服丰满熟妇少妇人妻| 蜜桃人妻一区二区三区| MM1313亚洲精品无码又大又| 琪琪777午夜理论片在线观看播| 波多野结系列18部无码观看A|