色噜噜狠狠成人网_好男人社区神马在线观看www_亚洲国产成人精品女人久久久_日本特黄aaaaaaa大片

千鋒教育-做有情懷、有良心、有品質(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

  指令的話(huà)這里就不多說(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)題

web前端自學(xué)好還是培訓(xùn)好

關(guān)于“web前端自學(xué)好還是培訓(xùn)好”這個(gè)問(wèn)題說(shuō)法眾說(shuō)紛紜,有很多...

選擇Web培訓(xùn)機(jī)構(gòu)的注意事項(xiàng)有哪些

師資力量;老師是不是又豐富的實(shí)戰(zhàn)開(kāi)發(fā)經(jīng)驗(yàn),這點(diǎn)是非常重要的。...

Web前端主要做什么

前端開(kāi)發(fā)是創(chuàng)建Web頁(yè)面或app等前端界面呈現(xiàn)給用戶(hù)的過(guò)程,通過(guò)HT...

web前端培訓(xùn)分享:學(xué)Web前端的好處有哪些

web前端近幾年在IT互聯(lián)網(wǎng)行業(yè)比較火熱,很多人都開(kāi)始參加web前端...

web前端培訓(xùn)分享:Web前端需要學(xué)什么

Web前端需要學(xué)什么?好不好學(xué)?這是很多想要進(jìn)入到web前端行業(yè)的學(xué)...

零基礎(chǔ)參加web前端培訓(xùn)都學(xué)什么

零基礎(chǔ)參加web前端培訓(xùn)都學(xué)什么?基礎(chǔ)階段學(xué)習(xí)HTML常用標(biāo)簽與表單...

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

色噜噜狠狠成人网_好男人社区神马在线观看www_亚洲国产成人精品女人久久久_日本特黄aaaaaaa大片

9000px;">

国产成人av影院| 色诱视频网站一区| 在线亚洲一区二区| 日韩一区日韩二区| 狠狠久久亚洲欧美| 日本一区二区免费在线| 成人午夜精品在线| 一个色在线综合| 欧美一区二区三区思思人| 久久精品噜噜噜成人av农村| 久久久精品tv| 色域天天综合网| 国产在线精品一区二区不卡了| 国产视频一区二区三区在线观看| 高清视频一区二区| 亚洲超碰精品一区二区| 久久嫩草精品久久久久| 99精品欧美一区| 蜜桃av噜噜一区| 亚洲人午夜精品天堂一二香蕉| 欧美三级在线看| 国产美女主播视频一区| 亚洲韩国精品一区| 久久蜜臀精品av| 色狠狠综合天天综合综合| 久久机这里只有精品| 亚洲猫色日本管| 久久精品夜色噜噜亚洲aⅴ| 日本二三区不卡| 国产一区二区在线影院| 亚洲综合在线视频| 欧美激情一区二区| 欧美成人激情免费网| 91欧美激情一区二区三区成人| 精品一区二区三区日韩| 亚洲欧美日韩中文播放| 欧美tickling挠脚心丨vk| 在线视频国内自拍亚洲视频| 国产精品亚洲一区二区三区妖精| 天堂资源在线中文精品| 中文欧美字幕免费| 精品国产成人系列| 91亚洲永久精品| 国产成人精品综合在线观看| 五月激情综合色| 伊人一区二区三区| 亚洲国产精品ⅴa在线观看| 5566中文字幕一区二区电影| 在线精品视频小说1| 99国产精品视频免费观看| 国产精品1区2区| 国产一区二区三区国产| 日韩精品色哟哟| 性欧美大战久久久久久久久| 一区二区三区国产| 亚洲激情欧美激情| 一二三四社区欧美黄| 一区二区三区四区蜜桃| 亚洲精品成人精品456| 亚洲三级视频在线观看| 国产精品久久久久7777按摩 | 欧美日韩三级一区| 欧美在线制服丝袜| 欧美精品久久99| 欧美一区二区三区成人| 精品入口麻豆88视频| 久久免费国产精品| 亚洲欧洲在线观看av| 成人欧美一区二区三区| 亚洲图片另类小说| 亚洲午夜av在线| 奇米888四色在线精品| 久久国产婷婷国产香蕉| 美女在线观看视频一区二区| 国产福利一区二区三区| 99re在线精品| 欧美精品高清视频| 日韩一级大片在线| 国产精品久久久久久亚洲毛片| 久久人人97超碰com| 国产精品美女一区二区三区| 亚洲三级久久久| 天天色综合天天| 国产成人av电影在线| a4yy欧美一区二区三区| 欧美图区在线视频| 日韩一区二区三区电影| 日韩毛片高清在线播放| 日韩在线一区二区三区| 成人涩涩免费视频| 日韩视频一区二区三区在线播放 | 成人av网址在线| 欧美在线观看一区| 久久先锋影音av| 亚洲韩国一区二区三区| 韩国三级在线一区| 91亚洲午夜精品久久久久久| 91精品国产aⅴ一区二区| 国产午夜精品久久久久久久| 亚洲h精品动漫在线观看| 国产一区二三区好的| 色久优优欧美色久优优| 国产午夜精品理论片a级大结局| 亚洲天堂福利av| 国产精品资源站在线| 91久久香蕉国产日韩欧美9色| 日韩女优av电影| 亚洲在线一区二区三区| 国产精品综合二区| 欧美一级片在线看| 一区二区三区自拍| 99久久综合99久久综合网站| 欧美一级国产精品| 亚洲国产综合色| 99热国产精品| 亚洲人123区| 91在线国产福利| 欧美一级艳片视频免费观看| 亚洲成人一区二区在线观看| 不卡一区二区中文字幕| 国产午夜亚洲精品午夜鲁丝片| 日韩电影免费在线| 在线播放欧美女士性生活| 一区二区三区视频在线看| 成人av电影在线观看| 国产精品天干天干在线综合| 国产在线视频一区二区三区| 日韩精品在线一区二区| 日日夜夜精品视频免费| 欧美一区二区视频在线观看| 日韩av在线发布| 91精品欧美久久久久久动漫| 日韩在线一二三区| 在线成人午夜影院| 麻豆一区二区在线| 久久久亚洲精华液精华液精华液| 激情文学综合插| 国产色综合一区| 成人午夜视频免费看| 国产精品国产三级国产aⅴ中文 | 99久久精品国产网站| 国产精品久久久久婷婷| 色综合一个色综合亚洲| 亚洲一二三四久久| 欧美日韩国产小视频在线观看| 亚洲a一区二区| 精品国产91乱码一区二区三区 | 97精品电影院| 亚洲午夜羞羞片| 日韩精品专区在线| 国产精品456露脸| 亚洲人成网站色在线观看| 欧美日韩国产一区| 国产精品综合视频| 亚洲人成网站精品片在线观看| 欧美综合色免费| 精品一区二区三区久久久| 国产午夜精品久久久久久免费视 | 91亚洲精品久久久蜜桃| 18成人在线观看| 欧美女孩性生活视频| 国产伦精品一区二区三区在线观看| 亚洲丝袜另类动漫二区| 91国产丝袜在线播放| 久久99在线观看| 一个色妞综合视频在线观看| 欧美mv和日韩mv的网站| av不卡在线播放| 韩国三级电影一区二区| 一区二区三区四区不卡在线| 精品美女在线观看| 99久久综合色| 国产揄拍国内精品对白| 亚洲欧美另类久久久精品2019| 欧美一个色资源| 色视频成人在线观看免| 精品无人码麻豆乱码1区2区| 亚洲午夜av在线| 17c精品麻豆一区二区免费| 日韩午夜在线观看| 欧美喷水一区二区| 日本高清不卡aⅴ免费网站| 国产精品18久久久久久vr| 视频一区视频二区在线观看| 亚洲色图视频免费播放| 久久九九全国免费| 精品美女在线观看| 日韩一区二区电影在线| 日本电影欧美片| 9色porny自拍视频一区二区| 国产精品自拍一区| 九九热在线视频观看这里只有精品| 亚洲成av人**亚洲成av**| 国产精品高潮呻吟久久| 久久精品日韩一区二区三区| 欧美成人精品二区三区99精品| 欧美乱熟臀69xxxxxx| 欧美系列日韩一区| 欧美亚洲综合久久| 欧美性大战久久久久久久蜜臀|