欧美经典日韩精品_日韩高清亚洲日韩精品一区_日韩精品无码综合视频网_国产v亚洲v天堂?无码久久_中文字幕免费无码专区

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

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

Vue3-巧用指令

發(fā)布: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: '上海市普陀區(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>

假如不設置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行業(yè)涉及到各種專業(yè)的知識,作為一個工作人員掌握一些基礎的...

前端技術有哪些?

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

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

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

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

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

web前端有哪些框架?

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

學web前端需要學什么知識

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

測一測
你知道多少IT梗

漂亮人妻被强中文字幕| 五月丁香六月狠狠爱综合| 国产69成人精品视频免费| 亚洲AV无码成H人动漫网站| 脔到她哭H粗话HWWW男男动漫| 成人无码午夜在线观看| 亚洲色AV无码AV丰满AV| 色吊丝AV中文字幕| 久久99热精品免费观看| 成年网站未满十八禁在线观看| 亚洲毛片ΑV无线播放一区| 日本一区二区在线播放| 久久精品无码免费不卡| 国产AⅤ无码一区二区三区| 幼儿免费网站精品幼儿1| 无码国产伦一区二区三区视频| 免费A级毛片无码免费视频首页| 国产精品久久国产三级国不卡顿 | 小洞饿了要吃大肠动作视频 | 日韩无人区码卡二卡3卡一| 精品日本久久久久久人妻日本| 成人A级毛片免费视频| 野花香视频免费观看| 香蕉大美女天天爱天天做| 日本按摩高潮S级中文片| 老师你的兔子好软水好多小时 | 娇小6一8XXXXX| 波多野结衣中文字幕一区二区三区 | 免费无码又爽又刺激软件下载直播| 菠萝视频免费最新在线观看| 一线产区与二线产区的定义| 无人区一码二码三码区别在哪 | 中国孕妇变态孕交XXXX| 亚洲AⅤ无码乱码在线观看性色| 日本高清视频色WWWWWW色| 蜜桃AV一区二区| 久激情内射婷内射蜜桃人妖| 国产粗语刺激对白ⅩXX| S货叫大点声C烂你的SB视频| 在线无码一区二区| 亚洲精品无码国产| 性色AV免费网站| 天天躁日日躁狠狠躁人妻| 人善交XUANWEN200| 女の乳搾りです在线观看| 久久久久久久久久久精品| 狠狠色噜噜狠狠狠888777米| 国产精品一国产精品| 粗大的内捧猛烈进出| MM1313亚洲国产精品无码| 最新 国产 精品 精品 视频| 亚洲中文字幕无码中文| 亚洲ΑV无码一区二区三区四区 | 人妻无码精品久久亚瑟影视| 内射人妻视频国内| 乱人伦人妻中文字幕在线入口| 久久99久久99精品中文字幕 | 欧美XXXX做受欧美.88| 久久人人做人人妻人人玩精品HD | 产后漂亮奶水人妻| 9LPORM自拍视频区九色| 中字年轻漂亮的儿媳2| 英语老师乖乖挽起裙子怎么写作文| 亚洲欧美日韩久久精品第一区| 亚洲AV福利天堂一区二区三| 无人区码一码二码三码医生系列| 台湾无码AV一区二区三区| 熟女一区二区蜜桃视频| 唐人社视频呦一区二区| 四川少妇XXXX内谢欧美| 熟女高潮精品一区二区绯乐| 少妇人妻精品一区二区| 搡老女人老91妇女老熟女oo| 日本最大胆的人文体艺术| 日本边添边摸边做边爱小视频| 人妻少妇精品中文字幕AV| 秋霞AV鲁丝片一区二区| 人妻少妇伦在线麻豆M电影| 人妻熟妇乱又伦精品HD| 人人澡人摸人人添| 日本无人区码一码二码三码四码 | 亚洲中文字幕无码爆乳AV| 亚洲欧美日韩、中文字幕不卡 | 天天摸天天做天天爽天天弄| 太太你也不想你丈夫被开除吧| 婷深夜综合成人AⅤ网站| 无码国产精品一区二区免费式芒果| 无码国产伦一区二区三区视频| 无码精品视频一区二区三区| 无码中文人妻在线三区| 亚洲AV婷婷五月产AV中文| 亚洲国产精品久久青草无码 | 国产日韩未满十八禁止观看| 国产亚洲精品第一综合另类灬| 国产在线精品99一区不卡| 精品国产三级A∨在线无码| 久久久久精品国产AV麻豆| 免费一本色道久久一区| 欧洲乱码一卡2卡三卡4卡高清| 人人狠狠综合久久亚洲婷婷| 色一情一乱一伦麻豆| 午夜A级毛片免费观看| 亚洲精品无码成人| 中国西西大胆女人裸体艺术 | 欧美黑人性暴力猛交喷水黑人巨大| 欧美午夜理伦三级在线观看| 日本伊人色综合网| 天天摸天天碰成人免费视频| 亚洲AV无码一区二区二三区入口| 亚洲一区二区三区乱码AⅤ蜜桃| 一区二区三区熟女少妇小牛| AV无码不卡一区二区三区| 粉嫩性色av一区二区三区| 国产在线内射婷婷| 久久久精品456亚洲影院| 内射老妇女BBWXOGOD| 日日噜噜夜夜狠狠久久丁香五月| 无码人妻精品一区二区蜜桃温柔乡| 亚洲AV永久无码老湿机漫画| 一级伦奷片高潮无码看了5 | 亚洲熟妇少妇任你躁在线观看无码 | 137肉体摄影日本裸交| JIZZJIZZJIZZ中国| 大乳VIDEOS巨大吃奶| 国产欧美VA天堂在线观看视频下| 久久成人国产精品无码| 女人张开腿让男人添| 熟妇人妻精品一区二区视频免费的 | 亚洲AV日韩精品久久久久久A| 亚洲成AV人片一区二区密柚| 正在播放熟妇群老熟妇456| 成人无码区免费AⅤ片WWW| 国语自产精品视频在线区| 美女直播全婐APP免费| 色婷婷亚洲婷婷七月中文字幕| 亚洲不卡无码A∨在线| 18禁裸男晨勃露J毛免费观看| 大乳丰满人妻中文字幕日本| 韩国理伦电影午夜三级| 免费观看人成影片| 太紧了夹得我的巴好爽欧美| 亚洲色大成网站久久久| 波多野结衣AV无码| 精品国产免费人成网站| 去部队探亲晚上叫太大声| 亚洲AV成人一区二区三区| 80岁老熟妇乱子伦牲交| 各种少妇正面着BBW撒尿视频| 精品韩国亚洲AV无码不卡区| 欧美综合自拍亚洲综合图片区| 小怡的暴露耻辱系列小说| 717影院理论午夜伦八戒| 国产美女视频国产视视频 | 未满小14洗澡无码视频网站| 亚洲午夜无码久久久久蜜臀AV| 草草影院精品一区二区三区| 精华液一区二区区别| 人妻精品一区二区| 亚洲男人的天堂AV手机在线观看| 啊灬啊别停灬用力啊老师| 精品成人毛片一区二区| 日本久久三级电影院| 亚洲色大成网站WWW| 绯色AV永久无码一区二区蜜臀| 久久无码精品一区二区三区| 天天AV天天翘天天综合网| 中文人妻AV大区中文不卡| 国产无遮挡又黄又爽奶头| 欧洲-级毛片内射| 亚洲乱亚洲乱妇24P| 福利姬国产精品一区在线| 美日韩AV成人影院| 亚洲AV成人精品日韩一区18p| 99久久99久久精品国产片果冻 | 国产成人亚洲精品无码最新| 麻豆传播媒体免费版官网 | 少妇系列之白嫩人妻| 真人无码作爱免费视频| 国产色无码精品视频国产| 人妻无码久久一区二区三区免费 | 成人欧美一区二区三区在线观看 | 久无码久无码AV无码| 无码AV免费一区二区三区| CEKC老妇女CEA0| 久久久久人妻一区二区三区| 午夜亚洲国产理论片2020| 暗交小拗女一区二区| 胯下硕大征服冰山女神| 亚洲AV无码国产精品永久一区| 暴躁CSGO妹子| 免费观看交性大片| 亚洲国产成人久久综合下载| 国产成人AV无码精品天堂| 欧美一区二区三区放荡人妇| 野花日本大全免费观看中文7| 国产一区二区三区精品视频| 色诱视频在线观看| A在线视频播放观看免费观看| 久久婷婷激情综合色综合俺也去| 亚洲AV综合色区无码二区偷拍|