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

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

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

Vue3-巧用指令

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

推薦答案

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

  今天我們主要介紹一下如何使用指令來應(yī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)用實例,比如scrollReady,當(dāng)然如果你指令里面寫了默認(rèn)參數(shù),也可以不用參數(shù)的傳遞。

<div

    class="mobiReview"

    v-OverlayScrollbars

  ></div>

sortablejs

這里算是一個額外補充說明,有些同學(xué)在做表格拖拽時使用了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會出現(xiàn)拖拽數(shù)據(jù)錯亂的情況,或者說在拖拽一個列表,而列表的keyindex,也會出現(xiàn)這個問題。

因為大多數(shù)人喜歡把index作為key的賦值,而我們拖拽時index會變動,移除和添加時數(shù)組的索引會變,這會讓diff出現(xiàn)問題,就好比每一個人都有一個身份證,把某個人前面的人移除掉,這個人不可能就繼承前面那個人的身份證了,key對于這條數(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è)計要多久?報速成班靠譜嗎?

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

相關(guān)問題

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

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

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

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

Web前端主要做什么

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

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

web前端近幾年在IT互聯(lián)網(wǎng)行業(yè)比較火熱,很多人都開始參加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)簽與表單...

測一測
你知道多少IT梗

日韩精品在线看_黄色成人美女网站_偷窥自拍亚洲色图精选_五月激情综合
另类春色校园亚洲| 欧美一区国产在线| 亚洲人www| 99re热这里只有精品视频| 99国产精品久久久| 亚洲尤物在线视频观看| 久久成人亚洲| 欧美激情视频一区二区三区在线播放| 欧美午夜精品久久久久久孕妇| 国产精品亚洲一区| 一区精品久久| 一区二区三区高清不卡| 欧美在线播放| 欧美日本亚洲| 国产亚洲激情在线| 亚洲日本va在线观看| 亚洲欧美综合精品久久成人| 久久综合电影| 国产精品草草| 亚洲国产va精品久久久不卡综合| 亚洲无毛电影| 欧美aⅴ99久久黑人专区| 欧美午夜宅男影院| 亚洲第一区中文99精品| 亚洲综合第一| 欧美福利视频网站| 国产日韩欧美精品| 日韩一区二区精品| 久久久噜噜噜久久中文字免| 欧美日韩在线观看一区二区| 激情六月婷婷久久| 亚洲小说欧美另类社区| 欧美18av| 国产欧美在线观看一区| 亚洲蜜桃精久久久久久久| 久久精品青青大伊人av| 欧美亚洲不卡| 亚洲欧洲另类| 久久久久99| 国产精品久久毛片a| 亚洲精品精选| 久久免费视频网| 国产精一区二区三区| 99re国产精品| 欧美不卡在线视频| 国产一区二区三区四区hd| 亚洲一区二区三区在线看| 欧美国产在线视频| 亚洲第一中文字幕| 欧美在线91| 国产精品每日更新在线播放网址| 99热这里只有精品8| 美女诱惑黄网站一区| 国产一级久久| 欧美一级理论片| 国产精品无码永久免费888| 日韩午夜视频在线观看| 免费日韩成人| 在线播放不卡| 久久免费国产| 国产一区二区三区久久| 性欧美8khd高清极品| 国产精品久久久久久久久久妞妞| 99精品福利视频| 欧美华人在线视频| 亚洲第一在线综合网站| 久久亚洲影音av资源网| 国内精品视频一区| 久久不射中文字幕| 国产日韩1区| 亚洲欧美视频在线| 国产精品自拍小视频| 亚洲在线观看免费视频| 国产精品福利网| 亚洲一卡久久| 国产精品免费看片| 亚洲欧美日本伦理| 国产精品网站在线播放| 亚洲欧美成人一区二区三区| 国产精品成人一区二区三区夜夜夜| 一本色道久久综合亚洲精品不| 欧美精品色网| aa亚洲婷婷| 欧美午夜精品久久久久免费视 | 一区二区亚洲精品国产| 久久国产66| 激情综合网址| 欧美成va人片在线观看| 最新日韩中文字幕| 欧美日韩国产综合视频在线| 日韩亚洲欧美一区二区三区| 欧美日韩国产免费观看| 国产精品99久久久久久久久久久久 | 欧美大秀在线观看| 亚洲每日在线| 欧美香蕉视频| 亚洲欧美日韩另类精品一区二区三区| 国产女同一区二区| 久久久久久久久久久久久久一区 | 欧美二区乱c少妇| 在线视频你懂得一区| 欧美性猛交99久久久久99按摩| 亚洲一区二区三区精品在线观看| 国产精品区二区三区日本 | 欧美成人小视频| 999在线观看精品免费不卡网站| 欧美日韩在线一区| 欧美一激情一区二区三区| 国内成+人亚洲+欧美+综合在线| 另类综合日韩欧美亚洲| 亚洲精品偷拍| 国产精品日韩欧美一区二区三区| 午夜一区在线| 伊人天天综合| 欧美日韩免费在线观看| 午夜精品一区二区三区电影天堂 | 欧美成人中文字幕| 99re6这里只有精品| 国产精品久久午夜夜伦鲁鲁| 欧美在线视频免费播放| 亚洲第一偷拍| 国产精品久久久久毛片大屁完整版| 久久超碰97中文字幕| 亚洲久久成人| 国产欧美在线播放| 欧美激情第六页| 亚洲欧美日韩在线一区| 在线精品一区| 欧美性猛交99久久久久99按摩 | 国产乱人伦精品一区二区 | 欧美日韩国产欧| 欧美在线999| 99国产麻豆精品| 国产午夜亚洲精品不卡| 欧美激情国产日韩精品一区18| 亚洲在线一区二区三区| 亚洲福利在线观看| 国产精品免费小视频| 久久夜色精品国产欧美乱| 一本色道久久综合亚洲精品不| 国产一区欧美| 欧美三级特黄| 嫩草成人www欧美| 西西裸体人体做爰大胆久久久 | 久久全球大尺度高清视频| 宅男精品视频| 亚洲成在人线av| 国产精品一区免费在线观看| 欧美激情亚洲自拍| 欧美伊人久久| 一区二区欧美在线| 原创国产精品91| 国产精品人人做人人爽| 欧美激情视频网站| 久久噜噜亚洲综合| 亚洲欧美日韩中文视频| 亚洲精品国产精品乱码不99| 国产午夜精品福利| 欧美色图麻豆| 欧美国产亚洲精品久久久8v| 久久精品亚洲精品| 亚洲一区亚洲二区| 日韩特黄影片| 亚洲欧洲在线播放| 国语精品一区| 国产嫩草影院久久久久| 欧美视频中文一区二区三区在线观看| 欧美不卡一区| 久久全球大尺度高清视频| 西西人体一区二区| 宅男噜噜噜66一区二区66| 亚洲欧洲精品一区二区| 影音先锋日韩资源| 国产日韩在线看| 国产精品日韩精品欧美在线| 欧美日韩在线第一页| 欧美激情在线播放| 牛夜精品久久久久久久99黑人| 久久av在线看| 午夜亚洲视频| 午夜精品久久久久久久99樱桃| 一区二区久久| 99xxxx成人网| 亚洲美女视频在线观看| 91久久精品美女| 亚洲成人自拍视频| 在线免费观看欧美| 国内伊人久久久久久网站视频| 国产伦精品一区二区三区视频黑人| 欧美午夜免费影院| 国产精品www色诱视频| 欧美日韩国产不卡| 欧美日韩大片| 欧美日韩另类字幕中文| 欧美福利一区| 欧美成人激情在线| 欧美va天堂| 欧美成人免费全部| 欧美va亚洲va国产综合| 欧美电影免费观看高清| 欧美电影在线免费观看网站| 99日韩精品| 一区二区精品在线| 亚洲无限乱码一二三四麻|