国产91精品露脸国语对白-国产91精品系列在线观看-国产91精品一区-国产91精品一区二区-精品视频免费看-精品视频免费观看

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

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

相關問題

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

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

前端技術有哪些?

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

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

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

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

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

web前端有哪些框架?

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

學web前端需要學什么知識

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

測一測
你知道多少IT梗

护士趴下光屁股翘臀被打的作文 | 中文一国产一无码一日韩| 京东影业JD008苏小小| 中文字幕无码专区人妻制服| 手机在线看永久AV片免费高潮| 精品一区二区三区无码免费视频| YY111111少妇影院免费| 亚洲AV无码一区二区三区电影 | 亚洲成在人线AV自拍| 久久五月精品中文字幕| 大胆欧美乱老熟妇伦电影免费| 亚洲女久久久噜噜噜熟女| 年轻 娇小 亚洲人 日本语 夹| 国产精品99久久久久久人| 越南少妇BBV叉叉叉| 日本极品白嫩ASSPICS| 护士交换粗吟配乱大交| 中文字幕亚洲欧美日韩在线不卡 | AV怡红院一区二区三区| 亚洲 春色 另类 小说| 久久亚洲AV成人无码国产电影| 成熟丰满女人丰满妇女aⅴ| 亚洲色精品VR一区二区三区| 日日摸夜夜添夜夜添亚洲女人| 国产亚洲欧洲AⅤ综合一区| 30分钟无遮挡机机对机机| 午夜成人鲁丝片午夜精品| 欧美ZC0O人与善交的最新章节| 国产无遮挡吃胸膜奶免费看| A级黑粗大硬长爽 猛视频,| 亚洲A∨精品无码一区二区 | 精品无码久久久久久尤物| 97成人无码免费一区二区中文 | 爆乳熟妇一区二区三区| 性XXXXXXⅩXXXX少妇| 欧美丰满少妇内射XXXX免费| 国产成人精品综合久久久久| 中国少妇XXXX做受| 色偷偷人人澡人人爽人人模| 精产国品一二三区别9978| 超碰97人人做人人爱亚洲尤物| 亚洲综合色婷婷在线观看| 四虎必出精品884| 妺妺窝人体色WWW在线观看| 国内国外日产一区二区| 草莓视频下载APP| 亚洲国产精品一区二区制服| 欧美FREESEX呦交| 护士趴下光屁股翘臀被打的作文| 成人免费无码大片A毛片抽搐色欲| 夜夜骚Av一区二区精品无码区| 日韩加勒比一本无码精品| 护士HD老师FREE性Ⅹ| 成人乱婬AV日日摸夜夜爽| 伊人久久大香线蕉综合5G| 无码中文国产不卡视频| 人妻丰满熟妇AV无码区不卡| 久久久久久AV无码免费网站 | MONSTER无删减动漫| 亚洲熟妇无码爱V在线观看| 日本人XXXX裸体XXXX| 精品高朝久久久久9999| 懂色av一区二区三区蜜臀| 中年国产丰满熟女乱子正在播放| 亚洲AV成人无码精品综合网站| 日本三级黄色视频| 麻花豆传媒剧国产MV在线上-| 国产chinese大学生Gay| 野花视频在线观看| 视频一区二区三区日韩| 巨RU麻麻奶水雪白肥美喷| 国产喷水1区2区3区咪咪爱AV| 99精品电影一区二区免费看| 亚洲国产精品一区二区美利坚| 天天玩天天玩天天玩| 男男喷液抽搐高潮呻吟AV| 娇妻被黑人杂交下呻吟| 国产成人精品无码一区二区| HENNESSY女RAPPER| 亚洲国产欧洲综合997久久| 人与性动交AAAABBBB| 乱码精品一区二区三区| 国产精品嫩草影院AV| きょこんきょうしゃ在线| 曰韩少妇内射免费播放| 亚洲国产AⅤ天堂久久| 污污污WWW精品国产网站 | 一女三黑人玩4P惨叫| 亚洲av网站在线| 天堂AⅤ无码一区二区三区| 人妻AV一区二区三区AV免费| 麻豆传煤入口免费进入2023| 国产精品视频色拍拍| 84PAO国产成视频永久免费| 亚洲天天做日日做天天谢日日欢| 熟女俱乐部五十路六十路AV| 欧美性色黄大片手机版| 麻花豆传媒剧国产免费| 国内精品国内精品自线在拍| 国产AV一区二区精品凹凸| 扒开腿狂躁女人爽出白浆| 中文字幕AV一区| 亚洲午夜无码久久久久软件| 亚洲AV无码一区二区乱子仑| 我国产码在线观看AV哈哈哈网站| 欧美熟妇呻吟猛交XX性| 乱码视频午夜在线观看| 久久精品国产99久久久香蕉| 黑人vs日本人ⅩXXXHD| 国产老熟女狂叫对白| 国产23在线 | 传媒麻豆| А天堂中文在线官网| 91人妻人人澡人人爽人人| 在线精品免费视频无码的| 亚洲人成综合网站7777香蕉| 亚洲AV性色在线观看| 少妇乳大丰满在线播放| 内射老阿姨1区2区3区4区| 久久久久亚洲AV无码专区桃色| 经典日韩成人网站在线观看| 国产一区内射最近更新| 丰满少妇邻居找我泻火| 被黑人捅入子宫射精小说| 中文字幕日本乱码仑区在线| 一本久道视频无线视频| 亚洲AV色无码乱码在线观看| 无码国产乱人伦偷精品视频| 人妻中文字幕制服丝袜| 欧美另类VIDEOSSEXO潮| 女人的选择HD中字| 免费无码又爽又刺激高潮软件| 乱人伦中文字幕在线视频| 精品成品国色天香卡一卡三| 国产亚洲色欲色一色WWW| 嗯好爽快点插我视频在线播放 | 久久精品国产网红主播| 精品国产一区二区三区免费| 好男人2019在线视频播放观看| 国产在线精品无码AV不卡顿| 高潮奶水涨喷在线播放| 东北骚妇老熟女DHXⅩXXX| 赤裸羔羊Ⅲ致命快感 电影| 成人区人妻精品一区二区不卡 | 夜鲁鲁鲁夜夜综合视频欧美| 亚洲无线码高清在线观看| 亚洲熟妇无码乱子AV电影| 亚洲AV秘 无码一区白峰美| 少妇人妻偷人精系列| 色噜噜狠狠色综合无码AV天堂| 欧美色成人综合天天影院| 欧美丰满熟妇BBBBBB性亚洲| 麻豆AⅤ精品无码一区二区| 老熟妇高潮一区二区高清视频| 邻居少妇很紧毛多水多| 免费播放片高清在线视频| 免费看美女被靠到爽的视频| 久久久久亚洲AV无码专区蜜芽| 久久青草免费福利资源站| 精品国产AⅤ一区二区三区V视界| 护士被强女千到高潮视频| 国产帅男男GAY网站视频| 国产VA免费精品高清在线| 国产成人综合亚洲AV第一页| 国产精品线在线精品| 国内精品宾馆在线精品酒店| 精品国产乱码久久久软件下载 | 国产精品美女WWW爽爽爽视频| 大香煮伊区一二三四区2021| 丰满人妻熟妇乱又伦精品视频三| 国产成A人片在线观看视频| 国产精品成人嫩草影院| 国产99视频精品免费视看6| 国产成人无码AV在线影院 | 欧美最猛黑人XXXⅩ猛男爽| 人妻夜夜爽天天爽三区麻豆AV网| 日本老熟妇人妻妇毛多多| 色欲精品国产一区二区三区AV| 挺进大幂幂的滋润花苞御女天下| 香港三日本三级少妇三级2021 | 老太性开放BBWBBWBBW| 国产精品久久久久久久久久直播| 国产成人A在线观看视频免费| 国产精品久久久久久久久久免费| 国产AV高潮社区| 国产成人亚洲综合无码99| 国产麻花豆剧传媒精品MV| 韩国的无码AV看免费大片在线 | 熟女CHACHACHA性少妇| 无码人妻丰满熟妇区BBBBXX| 天天看片高清观看免费| 午夜欧美精品久久久久久久| 在线观看4480私人影视| 浪荡艳妇爆乳JUFD汗だく肉感| 久久久久亚洲AV无码网站| 免费A级毛片18禁网站APP| 欧美最猛黑人XXXⅩ猛男野外 | 久久亚洲AV成人无码国产最大| 男人扒开添女人下部免费视频| 日本一线和三线的区别是什么| 无码AV免费网站|