日韩精品在线看_黄色成人美女网站_偷窥自拍亚洲色图精选_五月激情综合

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

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

Vue3-巧用指令

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

推薦答案

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

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

v2-c7f6420386db61816337233c3a8001e5_1440w

  directive

  指令的話這里就不多說了,參考官方文檔(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>

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

<div

    class="mobiReview"

    v-OverlayScrollbars

  ></div>

sortablejs

這里算是一個(gè)額外補(bǔ)充說明,有些同學(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ò)亂的情況,或者說在拖拽一個(gè)列表,而列表的keyindex,也會(huì)出現(xiàn)這個(gè)問題。

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

最新問答資訊

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

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

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

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

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

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

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

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

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

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

相關(guān)問題

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

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

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

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

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

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

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

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

web前端有哪些框架?

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

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

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

測一測
你知道多少IT梗

日韩精品在线看_黄色成人美女网站_偷窥自拍亚洲色图精选_五月激情综合
一区二区三欧美| 国产欧美一区二区精品性| 老司机精品导航| 免费在线欧美视频| 欧美人成在线| 国产精品影院在线观看| 尤物在线精品| 亚洲精品国产视频| 在线亚洲观看| 久久成人久久爱| 欧美成年人视频网站| 欧美色大人视频| 国内免费精品永久在线视频| 亚洲狼人精品一区二区三区| 午夜精品久久久99热福利| 老司机亚洲精品| 国产精品a久久久久久| 国内一区二区在线视频观看| 亚洲精品乱码久久久久久日本蜜臀| 在线中文字幕日韩| 久久理论片午夜琪琪电影网| 欧美日韩高清一区| 国产一二三精品| 日韩一级欧洲| 久久久欧美精品sm网站| 欧美日韩亚洲综合一区| 国产综合在线视频| 一区二区三区鲁丝不卡| 久久综合久久综合久久| 国产精品久久999| 亚洲国产日日夜夜| 欧美亚洲一区二区三区| 欧美激情91| 国产一区亚洲一区| 亚洲一品av免费观看| 蜜桃伊人久久| 国产亚洲aⅴaaaaaa毛片| 一本色道久久综合亚洲精品婷婷| 久久精品理论片| 欧美午夜精品一区| 亚洲国产91精品在线观看| 亚洲欧美综合一区| 欧美另类一区| 1000部国产精品成人观看| 欧美一级夜夜爽| 欧美日韩精品一区二区在线播放| 黄色一区二区三区| 午夜精品电影| 欧美三级视频在线观看| 亚洲国产精品福利| 久久久久久久久久看片| 国产欧美日韩免费| 中文日韩欧美| 欧美另类亚洲| 亚洲国产欧美一区二区三区同亚洲 | 免费在线欧美视频| 国产在线不卡精品| 亚洲欧美卡通另类91av| 欧美日韩精品系列| 亚洲精品国产精品久久清纯直播| 久久蜜桃香蕉精品一区二区三区| 国产精品毛片在线| 一区二区欧美日韩| 欧美激情一区二区三区在线视频观看| 影视先锋久久| 久久综合久久综合这里只有精品| 国产一区久久| 久久成人免费网| 国产日韩欧美a| 亚洲无线一线二线三线区别av| 欧美日韩在线观看一区二区| 日韩一区二区免费看| 欧美日本在线| 亚洲日本理论电影| 欧美精品aa| 亚洲精品日韩综合观看成人91| 欧美二区视频| 亚洲靠逼com| 欧美日韩精品一区二区天天拍小说| 亚洲精品日产精品乱码不卡| 欧美激情综合网| 日韩亚洲欧美一区| 欧美日韩精品免费观看视一区二区| 日韩亚洲欧美在线观看| 欧美日韩四区| 亚洲午夜久久久| 国产精品久久7| 羞羞色国产精品| 国产日韩欧美三级| 久久久99爱| 在线观看视频一区二区| 美女日韩在线中文字幕| 在线观看久久av| 欧美国产日产韩国视频| 99亚洲一区二区| 欧美午夜一区二区| 午夜精品成人在线| 国产在线精品一区二区中文| 久久久欧美一区二区| 亚洲电影欧美电影有声小说| 欧美凹凸一区二区三区视频| 日韩视频一区二区三区| 欧美三级第一页| 午夜国产精品影院在线观看| 国产一区二区高清视频| 老司机午夜免费精品视频| 99国产精品国产精品久久| 国产精品久久久久一区二区| 午夜在线a亚洲v天堂网2018| 国产在线精品一区二区夜色| 毛片一区二区| 日韩亚洲视频| 国产精品亚洲综合天堂夜夜| 久久久久久久久久看片| 亚洲精品欧洲| 国产精品日韩在线| 久久综合伊人77777麻豆| 亚洲人久久久| 国产精品乱码妇女bbbb| 久久久久网址| 一区二区不卡在线视频 午夜欧美不卡'| 国产精品女人久久久久久| 久久久夜色精品亚洲| 日韩视频在线观看| 国产欧美69| 欧美成人激情视频| 亚洲午夜av电影| 好看不卡的中文字幕| 欧美日韩一区二区精品| 欧美在线观看视频一区二区三区| 雨宫琴音一区二区在线| 欧美日韩在线另类| 久久久久久一区二区三区| 亚洲乱码国产乱码精品精天堂| 国产精品区一区二区三| 毛片av中文字幕一区二区| 亚洲香蕉伊综合在人在线视看| 国模精品娜娜一二三区| 欧美喷水视频| 久久精品视频va| 一本久久青青| 伊人久久综合97精品| 国产精品高清在线| 女人香蕉久久**毛片精品| 亚洲欧洲av一区二区| 91久久嫩草影院一区二区| 国产欧美日韩视频一区二区| 欧美激情一区二区三区四区| 欧美影院久久久| 夜夜嗨av一区二区三区四季av| 国产有码一区二区| 欧美午夜不卡视频| 媚黑女一区二区| 欧美影片第一页| 夜夜精品视频一区二区| 亚洲成色777777在线观看影院| 国产精品福利在线观看| 欧美 日韩 国产一区二区在线视频 | 亚洲国产毛片完整版| 国产视频一区在线观看一区免费| 欧美精品一区二区三区高清aⅴ| 久久精品国产精品亚洲| 一区二区三区久久网| 亚洲国产天堂久久综合网| 国产一区二区黄色| 国产精品网站在线| 欧美日韩情趣电影| 欧美v日韩v国产v| 久久久久久久久久久成人| 亚洲欧美国产三级| 一区二区三区免费在线观看| 亚洲国内精品在线| 精品99视频| 国产亚洲精久久久久久| 国产精品日韩在线| 欧美色区777第一页| 欧美精品1区| 美女亚洲精品| 狂野欧美激情性xxxx| 久久精品九九| 久久aⅴ国产欧美74aaa| 欧美一区二区三区视频在线| 亚洲综合色网站| 亚洲一区二区欧美| 正在播放欧美视频| 亚洲最新中文字幕| 亚洲精品在线免费| 最近中文字幕mv在线一区二区三区四区 | 亚洲国产日韩欧美在线图片| 伊人婷婷欧美激情| 黄色日韩网站| 一区在线视频观看| 黄网站免费久久| 国语自产精品视频在线看一大j8 | 亚洲电影在线观看| 在线高清一区| 在线观看日韩av| 一区二区亚洲欧洲国产日韩| 国产一区二区日韩精品| 国产日韩av一区二区| 国产欧美一区二区精品忘忧草| 国产精品乱码一区二三区小蝌蚪 | 欧美大片免费观看| 欧美激情久久久|