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

千鋒教育-做有情懷、有良心、有品質的職業教育機構

當前位置:首頁  >  IT問答庫  >  Web基礎知識

Vue3-巧用指令

發布:web前端培訓 2022-02-09 14:50

推薦答案

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

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

v2-c7f6420386db61816337233c3a8001e5_1440w

  directive

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

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>

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

<div

    class="mobiReview"

    v-OverlayScrollbars

  ></div>

sortablejs

這里算是一個額外補充說明,有些同學在做表格拖拽時使用了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: '上海市普陀區金沙江路 1518 弄'

  }, {

    id: 2,

    date: '2016-05-04',

    name: '王小虎',

    address: '上海市普陀區金沙江路 1517 弄'

  }, {

    id: 3,

    date: '2016-05-01',

    name: '王小虎',

    address: '上海市普陀區金沙江路 1519 弄'

  }, {

    id: 4,

    date: '2016-05-03',

    name: '王小虎',

    address: '上海市普陀區金沙江路 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會出現拖拽數據錯亂的情況,或者說在拖拽一個列表,而列表的keyindex,也會出現這個問題。

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

最新問答資訊

01 unity用什么編程語言?unity學習難度大嗎

學習 unity 語言
6020 人關注

02 python容易學嗎?學好python有什么好處?

學習 python 工作 培訓
5389 人關注

03 html是什么語言?html學習難嗎?

學習 html 語言 可以
5062 人關注

04 c語言難學嗎?c語言學好要多久?

語言 技術 學習
4733 人關注

06 學好平面設計要多久?報速成班靠譜嗎?

平面 設計 學習 時間
4238 人關注

相關問題

html是什么語言?html學習難嗎?

在it行業涉及到各種專業的知識,作為一個工作人員掌握一些基礎的...

前端技術有哪些?

互聯網行業的發展速度很快,特別是在前端這個崗位,如果不能時刻...

web前端開發需要掌握哪些知識

同時學會css,css是用來美化html頁面的為頁面提供布局和格式,最...

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

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

web前端有哪些框架?

同學您好,web前端總共有11個框架,因為web前端框架可以很大程度...

學web前端需要學什么知識

更多關于web前端培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教...

測一測
你知道多少IT梗

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

9000px;">

精品国产一区二区三区不卡| 极品销魂美女一区二区三区| 亚洲国产另类av| 精品一区二区久久| 99久久er热在这里只有精品15| 欧美一区二区三区男人的天堂| 亚洲美女视频在线观看| 日本91福利区| 欧美做爰猛烈大尺度电影无法无天| 91精品福利在线一区二区三区 | 欧美二区三区91| 亚洲另类色综合网站| 国产不卡高清在线观看视频| 日韩精品中文字幕在线不卡尤物 | 五月天激情综合网| 97精品电影院| 国产精品久久久久一区| 国产在线不卡视频| 精品理论电影在线观看 | 136国产福利精品导航| 国产精品综合网| 欧美电影免费观看高清完整版在线观看| 一区二区三区四区蜜桃| 一本色道亚洲精品aⅴ| 国产精品福利av| 波多野结衣一区二区三区 | 午夜视频一区在线观看| 欧美色区777第一页| 亚洲制服丝袜在线| 在线观看日韩电影| 天天综合色天天| 国产69精品久久777的优势| 久久综合九色综合久久久精品综合 | 欧美日韩免费不卡视频一区二区三区| 夜夜嗨av一区二区三区中文字幕| 91行情网站电视在线观看高清版| 亚洲精品国产一区二区精华液 | 热久久久久久久| 一本色道综合亚洲| 亚洲色大成网站www久久九九| 97精品视频在线观看自产线路二| 亚洲精品乱码久久久久久久久| 在线区一区二视频| 五月婷婷综合网| 欧美白人最猛性xxxxx69交| 国产综合成人久久大片91| 久久精品一区二区三区av| jizzjizzjizz欧美| 亚洲电影在线免费观看| 日韩欧美亚洲国产精品字幕久久久| 激情五月播播久久久精品| 欧美日韩欧美一区二区| 日本va欧美va欧美va精品| 欧美精品一区二区久久婷婷| 成人黄色大片在线观看| 亚洲福利视频一区| 久久色中文字幕| 99精品国产91久久久久久| 中文字幕一区二区三区视频 | 九九热在线视频观看这里只有精品| 久久这里都是精品| 一本一道综合狠狠老| 亚洲精品视频在线| 久久综合av免费| 欧美日韩视频在线第一区| 高清久久久久久| 国产一区二区精品久久91| 日本中文在线一区| 亚洲成人自拍网| 亚洲乱码国产乱码精品精的特点| 亚洲国产精品99久久久久久久久| 欧美精品一区二区三区高清aⅴ| 7777精品伊人久久久大香线蕉经典版下载 | 久久99精品国产91久久来源| 一个色综合网站| 国产精品久久久久影院老司 | 经典三级一区二区| 免费一级片91| 日韩成人dvd| 无吗不卡中文字幕| 亚洲1区2区3区4区| 亚洲五月六月丁香激情| 亚洲精选视频免费看| 亚洲欧美日韩一区二区| 中文字幕五月欧美| 自拍偷拍国产亚洲| 亚洲丝袜美腿综合| 日韩毛片精品高清免费| 中文字幕视频一区| 中文字幕亚洲成人| 樱花影视一区二区| 亚洲国产一区二区在线播放| 亚洲在线视频网站| 亚洲国产毛片aaaaa无费看| 亚洲愉拍自拍另类高清精品| 亚洲黄色av一区| 亚洲综合激情另类小说区| 亚洲国产精品久久人人爱| 亚洲国产精品影院| 日本午夜精品视频在线观看| 婷婷六月综合网| 蜜臀久久99精品久久久久宅男 | 成人欧美一区二区三区小说| 1区2区3区国产精品| 亚洲精品中文在线影院| 亚洲一二三四区不卡| 日韩国产精品久久| 国模冰冰炮一区二区| 成人av在线网站| 91福利视频久久久久| 欧美另类高清zo欧美| 精品国产伦理网| 中文字幕va一区二区三区| 成人免费在线播放视频| 午夜精品久久久久| 极品少妇一区二区三区精品视频| 成人午夜精品在线| 在线观看日韩精品| 欧美成人女星排名| 中文字幕在线一区| 香蕉乱码成人久久天堂爱免费| 男人的天堂久久精品| 国产一区二区毛片| 日本精品一区二区三区高清| 在线播放一区二区三区| 久久久国产一区二区三区四区小说| 国产精品福利影院| 日本成人在线视频网站| 懂色av一区二区三区蜜臀| 欧美熟乱第一页| 国产日韩欧美一区二区三区综合| 亚洲精品五月天| 国产一区二区三区黄视频 | 欧美日韩亚洲综合在线| 精品国产免费一区二区三区香蕉 | 欧美sm美女调教| 亚洲欧美色图小说| 激情五月激情综合网| 91久久精品一区二区三区| 2023国产精品视频| 一区二区免费看| 激情久久五月天| 色综合久久88色综合天天免费| 欧美电影免费观看高清完整版| 综合自拍亚洲综合图不卡区| 精品在线一区二区三区| 欧美亚洲国产一区二区三区| 久久久久久久综合日本| 三级精品在线观看| 91亚洲男人天堂| 欧美mv日韩mv国产| 亚洲成av人片在线观看| www.av亚洲| 欧美精品一区二区三区一线天视频 | 一区二区三区久久| 成人三级伦理片| 久久免费国产精品| 丝袜亚洲另类丝袜在线| 91黄色激情网站| 国产精品久久久久影视| 国产乱码字幕精品高清av| 欧美一级欧美三级在线观看| 一级日本不卡的影视| 成a人片亚洲日本久久| 久久久久久久久久久久久女国产乱| 图片区小说区区亚洲影院| 91福利资源站| 亚洲免费观看高清完整| 波多野结衣中文一区| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩免费一区二区三区视频| 综合电影一区二区三区| www.久久久久久久久| 欧美激情一区二区三区全黄| 韩国精品免费视频| 亚洲精品在线免费播放| 久久99精品久久久久婷婷| 日韩午夜精品视频| 美女看a上一区| 日韩一区二区三区av| 日本sm残虐另类| 欧美电视剧免费全集观看| 免费高清在线视频一区·| 日韩一级视频免费观看在线| 青青草成人在线观看| 欧美成人精品福利| 国产专区综合网| 欧美激情一区二区三区全黄| av亚洲产国偷v产偷v自拍| 国产精品久久久久aaaa樱花 | 亚洲丝袜另类动漫二区| 91社区在线播放| 一区二区三区在线视频观看58| 色视频欧美一区二区三区| 亚洲一区二区三区精品在线| 欧美日韩国产精品成人| 婷婷激情综合网| 欧美精品一区二区三区很污很色的| 国产成人av资源| 一区二区三区日韩在线观看|