亚洲国产日韩成人综合天堂_一区二区三区视频网站_国内小视频在线看_国产精品热视频_国产丝袜自拍_国产视频久久久久_麻豆精品免费视频入口_久久综合国产精品

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

當前位置:首頁  >  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梗

亚洲自拍中文字幕| 就去色蜜桃综合| 亚洲一区二区三区四区在线免费观看 | 黄色毛片视频| 性生活免费网站| 国产亚洲精品精品精品| 国产在线观看福利| 麻豆精品传媒视频| 国产91精品最新在线播放| 亚洲第一免费播放区| 亚洲人成在线播放网站岛国| 日韩一级免费毛片| 国产精品一二三四| av综合网址| 好吊日视频在线观看| 国产高清一级片| 91麻豆成人精品国产免费网站| 久久无码人妻精品一区二区三区| www插插插无码免费视频网站| 99视频日韩| 97在线观看免费高清| 亚洲欧美一区二区三区四区| 色综合久久综合网欧美综合网| 久久精品在线观看| 国产麻豆成人精品| 激情丁香综合| 日韩成人免费| 99这里只有精品视频| 中文在线免费视频| 欧美黄色激情| 理论片在线观看理伦片| 在线观看制服搞黄视频| 天堂在线观看视频| 国产精品熟女久久久久久| 久久久久久久久久久97| 国产jjizz一区二区三区视频| 在线看免费毛片| 日韩黄色片视频| 成人在线视频一区二区三区| 日韩精品国内| 久久久久一区二区三区| 国产热re99久久6国产精品| 欧美区二区三区| 日韩一区二区欧美| 亚洲欧美成人精品| 亚洲国产精品成人va在线观看| 欧美日韩亚洲不卡| 一本一道久久a久久精品| 亚洲一区二区三区视频在线播放| 中文字幕av不卡| 久久久99久久精品欧美| www.日本不卡| 不卡大黄网站免费看| 国产成人精品免费看| 美女在线视频一区| 久久这里只有| 日韩电影在线观看电影| 久久亚洲欧美| 日韩综合小视频| 日本麻豆一区二区三区视频| 天堂一区二区在线| 性一交一乱一区二区洋洋av| 99精品免费视频| 久久国产日本精品| 可以免费看不卡的av网站| 日韩和欧美一区二区三区| 久久综合狠狠| 黄页网站大全一区二区| 国产黄人亚洲片| 99精品久久只有精品| 久久久久久久久久电影| 中文字幕中文字幕一区二区| 亚洲女子a中天字幕| 亚洲成人免费看| 欧美性xxxxxx少妇| 欧美成人精品福利| 亚洲午夜av电影| 久久国产精品久久久久| 69av在线播放| 91亚洲国产成人久久精品网站| www日韩av| 亚洲一区二区不卡视频| 久久免费一级片| 国产av人人夜夜澡人人爽| 中文字幕乱妇无码av在线| 黄色性生活一级片| 欧美三级黄色大片| 欧美狂欢多p性派对| 综合国产在线视频| 中文字幕在线亚洲| 久久亚洲精品小早川怜子66| 久久全国免费视频| 成人久久久久爱| 日韩欧美在线观看强乱免费| 青青草精品视频在线| 中文字幕av不卡在线| 中文字幕国产专区| 一级片中文字幕| 亚洲爱情岛论坛永久| 国产高清免费视频| 欧美写真视频一区| 久久五月精品中文字幕| 亚洲免费一区三区| 欧美三级午夜理伦三级中文幕| 国产一区二区在线视频| 一级片免费网址| 黄色a级片在线观看| 亚洲中文一区二区| 俄罗斯男人又粗又大| 手机在线观看你懂的| 四虎精品成人影院观看地址| 金瓶狂野欧美性猛交xxxx| 久久久久九九精品影院| 欧美三级黄美女| www激情久久| 欧美日韩久久久久久| 欧美精品在线视频观看| 精品国产乱码久久久久久久软件| 欧美性久久久久| 欧美三级黄色大片| www.中文字幕.com| 中国动漫在线观看完整版免费| 亚洲校园激情春色| 欧美午夜久久| 国产精品久久久久久久久免费桃花 | 69久久夜色精品国产69乱青草| 久久久影院一区二区三区| 美女网站免费观看视频| 一区二区视频免费看| 先锋资源男人站| 精品成人一区二区三区免费视频| 精品视频一二| 国产美女在线精品| 欧美少妇bbb| 1769国内精品视频在线播放| 麻豆md0077饥渴少妇| aaaaa级少妇高潮大片免费看| 精品毛片一区二区三区| 美女的诞生在线观看高清免费完整版中文 | 91九色国产在线| 国产视频一区二区视频| 天天操天天射天天爽| 尤物在线观看| 欧美日韩色网| 亚洲人人精品| 色综合久久88色综合天天免费| 欧美最猛黑人xxxx黑人猛叫黄| 免费成人午夜视频| 九九精品免费视频| 男人插曲女人视频免费| 99精品美女视频在线观看热舞| 久久se精品一区二区| 日韩一区二区三区在线观看| 高清视频一区二区三区| 亚洲天堂2024| 性欧美videos粗暴| 黄在线观看免费网站ktv| 亚洲欧美卡通另类91av| 欧美视频完全免费看| 91成人在线看| 国产交换配乱淫视频免费| 欧美人与z0zoxxxx特| 蜜桃在线视频| 国产美女一区二区| 亚洲人成五月天| 一本色道久久88亚洲精品综合 | 波多野结衣中文字幕一区二区三区 | 亚洲日本伊人| 久草在线视频福利| 美美哒免费高清在线观看视频一区二区 | 91精品日本| 国产欧美一区二区精品性色| 欧美日韩国产123| 最新天堂中文在线| 亚洲欧美日本在线观看| 麻豆国产在线| 成人深夜在线观看| 久久精彩免费视频| www.日本xxxx| 中文字幕2020第一页| 另类激情视频| xnxx国产精品| 亚州欧美日韩中文视频| 一区二区在线免费看| 性欧美video另类hd3| 国产精品毛片无码| 18欧美亚洲精品| 91九色国产社区在线观看| 午夜成人亚洲理伦片在线观看| 日本女优北野望在线电影| 欧美国产高潮xxxx1819| 欧美一区欧美二区| 国产盗摄视频在线观看| 国产精品成人久久久| av免费在线免费| 国产在线一区二区综合免费视频| www.日韩不卡电影av| 91精产国品一二三产区别沈先生| 91精彩视频| 天天天综合网|