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

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

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

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方式調(diào)用的,我們可以在指令里面進行插件的初始化。

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>

我們可以通過指令來傳遞初始化參數(shù),也可以獲取插件調(diào)用實例,比如scrollReady,當然如果你指令里面寫了默認參數(shù),也可以不用參數(shù)的傳遞。

<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>

假如不設(shè)置row-key會出現(xiàn)拖拽數(shù)據(jù)錯亂的情況,或者說在拖拽一個列表,而列表的keyindex,也會出現(xiàn)這個問題。

因為大多數(shù)人喜歡把index作為key的賦值,而我們拖拽時index會變動,移除和添加時數(shù)組的索引會變,這會讓diff出現(xiàn)問題,就好比每一個人都有一個身份證,把某個人前面的人移除掉,這個人不可能就繼承前面那個人的身份證了,key對于這條數(shù)據(jù)應該是唯一的,不可變的,就像人的身份證一樣,故不要把index作為key來綁定。

最新問答資訊

01 unity用什么編程語言?unity學習難度大嗎

學習 unity 語言
6020 人關(guān)注

02 python容易學嗎?學好python有什么好處?

學習 python 工作 培訓
5389 人關(guān)注

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

學習 html 語言 可以
5062 人關(guān)注

04 c語言難學嗎?c語言學好要多久?

語言 技術(shù) 學習
4733 人關(guān)注

06 學好平面設(shè)計要多久?報速成班靠譜嗎?

平面 設(shè)計 學習 時間
4238 人關(guān)注

相關(guān)問題

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

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

前端技術(shù)有哪些?

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

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

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

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

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

web前端有哪些框架?

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

學web前端需要學什么知識

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

測一測
你知道多少IT梗

成人区精品一区二区婷婷,91caoporn在线,a√在线中文网新版址在线,蜜臀久久99精品久久久无需会员
日韩精品一区二区三区免费观影| 日韩精品一级二级| 欧美一区成人| 亚洲精品精选| 日韩av黄色在线| 国产日韩免费| 欧美a一区二区| 精品成人18| 日韩中文在线电影| 久久伦理在线| 国产一区不卡| 亚洲免费影视| 国产日韩在线观看视频| 国产在线观看91一区二区三区| 麻豆视频在线看| 日韩国产一区二区三区| 视频一区二区国产| 国产在线观看91一区二区三区| 日韩欧美另类中文字幕| 亚洲精品永久免费视频| 日韩中文在线播放| 性色av一区二区怡红| 亚洲久久视频| 国产福利资源一区| 三级小说欧洲区亚洲区| 一区在线免费观看| 中文字幕亚洲在线观看| 国产精品久久777777毛茸茸| 视频在线不卡免费观看| 九色精品91| 亚洲专区一区| 久久爱www.| 久久免费国产| 亚洲精品在线二区| 色爱综合网欧美| 一本一道久久a久久精品蜜桃| 最近国产精品视频| 成人午夜在线| 日韩视频一区二区三区在线播放免费观看 | 巨乳诱惑日韩免费av| 日韩在线成人| 色一区二区三区四区| 欧美一区二区三区高清视频 | 蜜臀a∨国产成人精品| 亚洲精选久久| 亚洲精品自拍| 日韩中文在线电影| 久久av影视| 国产精品久久久一区二区| 视频一区在线播放| 首页国产欧美久久| 在线国产一区| 久久久久观看| 久久精品99久久久| 蜜臀国产一区| 久久午夜精品| 成人国产精选| 免费成人在线影院| 精品久久91| 国产极品模特精品一二| 亚洲欧洲日韩| 成人在线视频中文字幕| 欧美69视频| 亚洲v天堂v手机在线| 日本免费一区二区三区四区| 亚洲午夜在线| 国产美女高潮在线观看| 日韩影院免费视频| 欧美激情日韩| 免费观看久久久4p| 韩国精品主播一区二区在线观看| 日韩国产精品久久久久久亚洲| 日韩毛片视频| 欧美一区网站| 不卡在线一区二区| 电影91久久久| 热久久久久久| 视频精品一区二区| 日韩中文在线播放| 欧美激情视频一区二区三区免费 | 日韩一区二区三区精品视频第3页| 国产亚洲第一伦理第一区| 亚洲专区视频| 亚洲精品一区三区三区在线观看| 欧美一区91| 人人精品人人爱| 免费视频亚洲| 精品欧美一区二区三区在线观看| 日韩午夜视频在线| 精品一区欧美| 色在线中文字幕| 老司机精品视频在线播放| 日韩精品久久久久久久软件91| 欧美+日本+国产+在线a∨观看| а√天堂8资源中文在线| 你懂的国产精品| 日本中文字幕一区二区| 亚洲一区国产| 亚洲欧美综合| 欧美综合另类| 视频小说一区二区| 日本久久精品| 日本久久黄色| 久久午夜影院| 国产精品亚洲产品| 欧美午夜三级| 日韩av中文字幕一区二区三区| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲深深色噜噜狠狠爱网站 | 久久免费大视频| 日韩高清不卡| 亚洲精一区二区三区| 精品女同一区二区三区在线观看| 黄色成人精品网站| 91视频久久| 日韩久久电影| 黄色不卡一区| 亚洲深夜福利| 蜜臀精品久久久久久蜜臀| 国语精品一区| 国产精品亲子伦av一区二区三区| 亚洲精品高潮| 午夜亚洲福利| 日韩av网站在线免费观看| 91在线成人| 国产精品乱战久久久| 日本午夜精品一区二区三区电影| 日韩有码av| 国产调教精品| 美女在线视频一区| 国产不卡av一区二区| 久久青青视频| 久久精品成人| 婷婷综合网站| 蜜桃av一区二区三区电影| 日韩精品亚洲一区二区三区免费| 日韩毛片网站| 国产精品115| 日韩国产一区二区| 91久久久精品国产| 视频一区视频二区中文字幕| 中文视频一区| 日本成人精品| 美女精品视频在线| av免费不卡国产观看| 亚洲夜间福利| 免费一级片91| 国产伦理一区| 日韩中文在线电影| 亚洲欧美视频| 国产免费av国片精品草莓男男| 九九九精品视频| 亚洲高清二区| 日韩区欧美区| 国产在线一区不卡| 欧美性感美女一区二区| 欧美一级精品| 日韩一区二区中文| 久久av影视| 精品深夜福利视频| 天堂成人国产精品一区| 欧美激情福利| 国产亚洲欧美日韩在线观看一区二区| 日韩三区免费| 黄色精品视频| 久久这里只有精品一区二区| 精品视频免费| 亚洲性图久久| 久久久久午夜电影| 男女性色大片免费观看一区二区 | 影音先锋久久精品| 国产精选一区| 成人精品亚洲| 日精品一区二区三区| 日本一二区不卡| 蜜桃伊人久久| 国产精品99一区二区三| 99riav国产精品| 麻豆91精品91久久久的内涵| 99精品视频在线| 亚洲精选成人| 日韩av片子| 亚洲伊人精品酒店| 97视频热人人精品免费| 日韩制服丝袜av| 成人台湾亚洲精品一区二区| 免费日韩av| 91日韩免费| 日本亚洲视频| 青青久久av| 国产日产精品_国产精品毛片 | 亚洲少妇在线| 日韩激情精品| 麻豆国产91在线播放| 欧美日韩亚洲国产精品| 亚洲精品极品| 91成人在线精品视频| 国产精品资源| 日本精品黄色| 久久中文字幕二区|