成人区精品一区二区婷婷,91caoporn在线,a√在线中文网新版址在线,蜜臀久久99精品久久久无需会员

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

當前位置:首頁  >  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 人關注

相關問題

web前端自學好還是培訓好

關于“web前端自學好還是培訓好”這個問題說法眾說紛紜,有很多...

選擇Web培訓機構的注意事項有哪些

師資力量;老師是不是又豐富的實戰開發經驗,這點是非常重要的。...

Web前端主要做什么

前端開發是創建Web頁面或app等前端界面呈現給用戶的過程,通過HT...

web前端培訓分享:學Web前端的好處有哪些

web前端近幾年在IT互聯網行業比較火熱,很多人都開始參加web前端...

web前端培訓分享:Web前端需要學什么

Web前端需要學什么?好不好學?這是很多想要進入到web前端行業的學...

零基礎參加web前端培訓都學什么

零基礎參加web前端培訓都學什么?基礎階段學習HTML常用標簽與表單...

測一測
你知道多少IT梗

成人区精品一区二区婷婷,91caoporn在线,a√在线中文网新版址在线,蜜臀久久99精品久久久无需会员
国产一区二区久久久久| 久久电影一区| 最新国产精品视频| 欧洲av不卡| 久久精品青草| 91九色精品| 国产精品久久久网站| 久久最新视频| 欧美日韩一二三四| 亚洲va久久| 石原莉奈在线亚洲三区| 久久久天天操| 国产亚洲在线观看| 一区二区三区网站| 欧美视频精品全部免费观看| 国产欧美一级| 亚洲成人不卡| 亚洲一区二区三区中文字幕在线观看| 午夜精品久久久久久久久久蜜桃| 色婷婷精品视频| 日韩制服丝袜av| 国产精品66| 欧美亚洲国产一区| 亚洲一区二区三区中文字幕在线观看| 日韩精品欧美大片| www在线观看黄色| 午夜一区在线| 久久伊人亚洲| 尤物tv在线精品| 日韩高清一区二区| jizzjizz中国精品麻豆| 丝袜亚洲精品中文字幕一区| 欧美亚洲免费| 美女视频黄免费的久久| 欧美日韩中文一区二区| 国产欧美一区二区三区米奇 | 国产精一区二区| 欧美特黄一级大片| 国产精品hd| 亚洲婷婷丁香| 在线观看免费一区二区| 国产调教精品| 日韩专区欧美专区| 激情综合自拍| 人在线成免费视频| 国产精品亚洲综合在线观看| 国产手机视频一区二区| 成人在线视频区| 欧美日本不卡| 综合色就爱涩涩涩综合婷婷| 欧美成人日韩| 日韩另类视频| 秋霞影院一区二区三区| 91欧美在线| 福利视频一区| 国产一区国产二区国产三区| 国产日产精品_国产精品毛片| 亚洲特色特黄| 色爱av综合网| 国产资源在线观看入口av| 欧美一区91| 国产午夜精品一区在线观看| 日韩一区电影| 日韩精品一区二区三区免费观影 | 中文字幕日本一区二区| 久久久噜噜噜| 日韩欧美自拍| 久久夜夜操妹子| 91亚洲人成网污www| 国产乱码精品一区二区亚洲| 日韩福利在线观看| 日本不卡高清| 日本亚州欧洲精品不卡| 免费在线看一区| 欧美13videosex性极品| 日韩久久精品网| 成人羞羞在线观看网站| 久久97视频| 日韩久久电影| 99精品视频在线| 成人av二区| 久久不射中文字幕| 日韩视频一二区| **爰片久久毛片| 国产精品黄网站| 国产专区精品| 午夜欧美在线| 亚洲tv在线| 久久久久伊人| 久久字幕精品一区| 欧美日韩少妇| 久久国产精品免费精品3p| 国产一区2区| 免费黄色成人| 国产欧美日韩一级| 久久精品1区| 中文字幕一区二区三区四区久久 | 亚洲最大av| 国产欧美一区二区色老头| 亚洲综合电影| 综合一区在线| 久久青青视频| 欧美中文高清| 一区视频在线| 麻豆一区二区99久久久久| 波多野结衣一区| 麻豆成人91精品二区三区| 免费欧美一区| 国产一区丝袜| 国产探花一区二区| 亚洲a级精品| 韩日一区二区三区| 日本不卡一区二区| 97se综合| 你懂的国产精品永久在线| 国内亚洲精品| 国产粉嫩在线观看| 蜜桃精品视频| 青青草国产成人99久久| 国产视频一区在线观看一区免费| 成人在线视频免费| 日韩精品a在线观看91| 久久福利一区| 日韩一级精品| 日韩一级欧洲| 极品日韩av| 91精品一区二区三区综合在线爱 | 精品国产一区二区三区2021| 一区二区精品| 99国内精品| 久久高清免费观看| 欧美精品羞羞答答| 99久久久久久中文字幕一区| 久久影院午夜精品| 蜜桃视频在线网站| 亚洲女同av| 激情婷婷欧美| 99视频精品视频高清免费| 欧美日韩精品免费观看视完整| 国产精品13p| 日韩欧美一区二区三区免费观看| 久久超碰99| 免费在线亚洲欧美| 欧美xxxx中国| 久久国产影院| 亚洲免费中文| 日韩一二三区在线观看| 亚洲精品成人一区| 国产精品xxx| 日韩av有码| 极品日韩av| 日本亚洲三级在线| 国产乱人伦丫前精品视频| 麻豆精品一区二区综合av| 成人一区不卡| 好看的av在线不卡观看| 国精品一区二区| 一区二区三区网站| 国产精品激情电影| 国内精品99| 国产日产高清欧美一区二区三区| 精品国内亚洲2022精品成人| 91精品福利| 国产精品videossex久久发布 | 精品视频一区二区三区四区五区| 国产不卡精品在线| 国产成人黄色| 在线视频亚洲| 另类小说一区二区三区| 欧美日韩国产在线一区| 国产精品中文字幕亚洲欧美| 欧美不卡视频| 精品三级在线| 日韩精品1区2区3区| 久久国产亚洲精品| 蜜桃精品视频| 国产精品久久国产愉拍| 五月天久久网站| 日韩久久精品网| 日本电影久久久| 亚洲午夜av| 国产乱码精品一区二区三区四区| 激情欧美丁香| 久久青青视频| 国产精品成人国产| 亚洲日产国产精品| 99国产成+人+综合+亚洲欧美| 精品国产成人| 国产精品一区二区免费福利视频| 亚洲一区久久| 亚洲免费观看| 久久五月天小说| 日本а中文在线天堂| 久久麻豆视频| 国产精品久久久免费| 欧美日韩18| 免费看精品久久片| 丝袜美腿亚洲一区二区图片| 日韩制服丝袜先锋影音| 亚洲作爱视频|