亚洲国产综合在线-亚洲国产综合网-亚洲国产综合人成综合网站00-亚洲国产综合久久精品-www成人国产在线观看网站-www成年人

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

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

Vue3-巧用指令

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

推薦答案

  Vue3-巧用指令不知道大家在工作中用上vue3了沒有,vue3好是好,但是有部分插件并沒有更新到3.0的,比如我比較喜歡的自定義滾動條overlayscrollbars,vue3直接使用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梗

欧美美女多人群交视频| 99久无码中文字幕一本久道| 免费无码黄网站在线观看| JIZZJIZZJIZZ日本| 天堂资源官网在线资源| 国色精品卡一卡2卡3卡4卡免费| 亚洲欲色欲色XXXXX在线| 欧美FREESEX呦交| 寡妇两腿间黑黑的毛毛是什么| 性生大片免费观看网站| 老女人性饥渴XXXXⅩHD另| А√天堂资源中文最新版地址| 无码动漫在线观看漫画 | 中文字幕人妻不在线无码视频| 欧美日韩人妻一区二区三区| 国产精品9999久久久久| 亚洲中文字幕久久精品无码A | 天天躁日日躁狠狠躁婷婷 | 麻豆AV一区二区三区| 大黑大巴大战欧洲美女图片| 亚洲国产精品成人一区二区在线 | 老妇人高清在线观看免费版| 成人午夜福利视频| 亚洲乱码日产一区三区| 欧美一级 片内射黑人| 国产免费午夜福利蜜芽无码| 综合激情丁香久久狠狠| 无码免费大香伊蕉在人线国产| 老师你乖乖的可以让你少吃点苦头 | av在线一区二区三区| 香蕉AV福利精品导航| 欧美日产欧美日产国产精品| 国产无套中出学生姝| 啊灬啊灬啊灬快灬高潮少妇| 亚洲丰满少妇XXXXⅩ高潮| 人妻中出无码一区二区三区| 久久99久久99精品免视看动漫| 国产成人AV综合亚洲色欲美女| 无码专区6080YY电影| 老色鬼久久亚洲AV综合| 国产免费无遮挡吸奶头视频| 富婆偷人对白又粗又大视频| 成人H动漫精品一区二区| 亚洲成a人片在线观看无码关注| 欧洲S码亚洲M码精品一区| 97色伦综合在线欧美视频| 天天影视性色香欲综合网| 男生把QQ放进女生的QQ里在线| 国产区精品福利在线社区| 99久久精品无码专区| 亚洲高清国产拍精品动图| 日本COSME大赏美白| 久久人妻无码中文字幕第一| 国产人与禽ZOZ0性伦| 97超级碰碰碰久久久久APP| 亚洲乱理伦片在线观看中字| 西西人体44RT NET毛最多| 日日摸夜夜添无码无码AV| 能让我流水水的一千字| 久久97久久精品免费观看黑人| 国产精品久久久久久一区二区三区| ASS年轻少妇浓毛PICS| 亚洲制服丝袜中文字幕在线| 亚洲 欧美精品SUV| 玩弄JaPan白嫩少妇一区二区| 日韩av在线一区二区| 欧美激情精品久久久久久| 免费A级毛片无码免费视频APP| 久久精品成人无码观看免费 | 久久亚洲精品无码AV红樱桃| 久久久久人妻精品一区| 久久精品国产亚洲A∨麻豆| 久久精品99国产精品蜜桃| 久久久精品国产免大香伊| 久久久久亚洲AV成人片一区| 精品欧洲AV无码一区二区| 护士HD老师FREE性Ⅹ| 国产一区二区三区好的精华液 | 久久婷婷色综合老司机| 久久久国产成人一区二区| 久久精品国产免费观看| 久久精品噜噜噜成人AV| 久久天天躁狠狠躁夜夜2020| 巨人精品福利官方导航| 里番本子库绅士ACG全彩无码| 久久一本精品久久精品66| 班长哭了能不能再抠游戏里面的钱| 9420高清完整版在线观看| 99视频精品全部在线观看| 99热最新成人国产精品| YY1111111少妇影院光屁| 超碰人人透人人爽人人看| 国产69精品久久久久久妇女迅雷| 国产成人精选视频在线观看| 国产欧美日韩第一章午夜在线| 国语偷拍人妻露脸| 久久国产精品无码一区二区三区| 久久久久精品国产99久久综合 | 国产精品爆乳奶水无码视频| 国产尤物亚洲精品不卡| 久久EE热这里只有精品| 蜜臀成人片免费视频在线观看| 女高中生自慰污污网站| 欧美最猛黑人xxxx黑人猛交| 色偷偷色噜噜狠狠成人免费视频| 挺进邻居人妻雪白的身体韩国电影| 无码中文AV有码中文AV| 亚洲区色情区激情区小说色情书| 伊人久久五月丁香综合中文亚洲| AV无码中出一区二区三区| 都市 亚洲 自拍 小说 校园| 国产亚洲精品A在线观看| 久久久久亚洲AV无码专区| 欧美人伦禁忌DVD| 天堂VA在线高清一区| 亚洲暴爽AV人人爽日日碰| 在线天堂おっさんとわたしWWW| 啊灬啊灬啊灬高潮了视频| 国产精华最好的产品人V中文| 精品无人区卡卡二卡三乱码| 男人进入女人下部图| 玩弄放荡人妻一区二区三| 亚洲日韩一页精品发布| 办公室撕开奶罩吮奶在线观看| 国产精品一国产精品| 久久天天躁夜夜躁狠狠2018| 日本熟妇乱人伦XXXX| 亚洲А∨天堂男人色无码| AV永久天堂一区二区三区香港| 国产精品高清一区二区三区人妖| 久久丫线这里只精品| 色狠狠色噜噜AV天堂一区| 国产女人精品视频国产灰线| 久久亚洲AV无码精品色午夜麻豆| 日本久久久WWW成人免费毛片丨| 亚洲AV永久无码精品九九| ASS鲜嫩鲜嫩PICS| 国内少妇毛片视频| 强开小娟嫩苞又嫩又紧| 亚洲国产成人五月综合网| 餐桌下他深深顶撞H| 久久99久久99精品免视看动漫 | 成人无码AV一区二区三区| 久久精品第一国产久精国产宅男6 久久精品第九区免费观看 | 亚洲AV一二三区成人影片| ZO2O女人另类ZO2O洗浴| 精品国产乱码久久久久久蜜桃免费 | 亚洲国产精品国自产拍电影| AV色欲无码人妻中文字幕| 娇妻在厨房被朋友玩得呻吟| 无码人妻少妇色欲AV一区二区| 边做奶水边喷H高H共妻| 老司机久久99久久精品播放免费| 午夜DJ在线观看免费完整版社区 | 爆乳2把你榨干哦OVA在线观看 | 孩教小UXXXⅩ精品| 日本边添边摸边做边爱喷水| 又大又黄又爽视频一区二区| 亚洲综合网国产精品一区| 国产精品久久无码一区| 日韩乱码人妻无码中文视频| 7777精品久久久大香线蕉| 久久99精品久久久久蜜芽| 无码动漫性爽XO视频在线观看不| 草莓影视在线观看视频| 免费私人家庭影院| 亚洲熟妇AV乱码在线观看| 国产亚洲成AⅤ人片在线观看麻豆 国产亚洲成AⅤ人片在线观看 | 亚洲成人AV网址| 国产成人精品综合久久久久| 欧美一区二区三区性视频野战 | 强伦姧人妻三上悠亚中文字幕| 伊人久久精品无码麻豆一区| 狠狠色丁香五月综合婷婷| 小S货又想挨C了叫大声点小| 公侵犯玩弄漂亮人妻优| 国产又色又爽又刺激视频| 日日摸日日碰夜夜爽无| 凹凸在线无码免费视频| 老师上课没戴奶罩看到奶头| 亚洲AV无码一区二区三区蜜桃| 国色天香一卡2卡3卡4卡| 午夜成人爽爽爽视频在线观看| 爸爸10岁幼儿TREE小学生| 免费A级毛片无码A∨蜜芽| 亚洲中文成人中文字幕| 精品动漫一区二区无遮挡| 亚洲AV中文无码乱人伦在线咪咕| 国产V片在线播放免费无码| 色欲色香天天天综合网站免费 | 久久亚洲色WWW成人网址| 亚洲人成网站在线在线观看| 好男人好资源影视在线| 亚洲AV无码AV在线影院| 国产热A欧美热A在线视频| 无码人妻精品一区二区蜜桃百度| 国产AV永久精品无码| 丝瓜草莓秋葵污旧版APP无限看| 嗯啊开小嫩苞HHH好深男男| 少妇厨房愉情理9仑片视频|