日韩精品在线看_黄色成人美女网站_偷窥自拍亚洲色图精选_五月激情综合

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

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

Vue3-巧用指令

發(fā)布:web前端培訓(xùn) 2022-02-09 14:50

推薦答案

  Vue3-巧用指令不知道大家在工作中用上vue3了沒有,vue3好是好,但是有部分插件并沒有更新到3.0的,比如我比較喜歡的自定義滾動(dòng)條overlayscrollbarsvue3直接使用overlayscrollbars-vue會(huì)報(bào)錯(cuò)。

  今天我們主要介紹一下如何使用指令來應(yīng)用這些插件,自定義滾動(dòng)條overlayscrollbars以及拖拽sortablejs

v2-c7f6420386db61816337233c3a8001e5_1440w

  directive

  指令的話這里就不多說了,參考官方文檔(https://v3.cn.vuejs.org/api/options-assets.html),overlayscrollbars以及sortablejs都是提供了js方式調(diào)用的,我們可以在指令里面進(jìn)行插件的初始化。

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)用實(shí)例,比如scrollReady,當(dāng)然如果你指令里面寫了默認(rèn)參數(shù),也可以不用參數(shù)的傳遞。

<div

    class="mobiReview"

    v-OverlayScrollbars

  ></div>

sortablejs

這里算是一個(gè)額外補(bǔ)充說明,有些同學(xué)在做表格拖拽時(shí)使用了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會(huì)出現(xiàn)拖拽數(shù)據(jù)錯(cuò)亂的情況,或者說在拖拽一個(gè)列表,而列表的keyindex,也會(huì)出現(xiàn)這個(gè)問題。

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

最新問答資訊

01 unity用什么編程語言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語言?html學(xué)習(xí)難嗎?

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

04 c語言難學(xué)嗎?c語言學(xué)好要多久?

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

06 學(xué)好平面設(shè)計(jì)要多久?報(bào)速成班靠譜嗎?

平面 設(shè)計(jì) 學(xué)習(xí) 時(shí)間
4238 人關(guān)注

相關(guān)問題

html是什么語言?html學(xué)習(xí)難嗎?

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

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

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

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

同時(shí)學(xué)會(huì)css,css是用來美化html頁面的為頁面提供布局和格式,最...

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

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

web前端有哪些框架?

同學(xué)您好,web前端總共有11個(gè)框架,因?yàn)閣eb前端框架可以很大程度...

學(xué)web前端需要學(xué)什么知識

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

測一測
你知道多少IT梗

日韩精品在线看_黄色成人美女网站_偷窥自拍亚洲色图精选_五月激情综合
国产精品久久久久国产精品日日| 午夜精品影院在线观看| 欧美日韩国产一区二区三区地区 | 国产精品久久久久高潮| 毛片一区二区| 亚洲第一中文字幕| 国产精品午夜视频| 欧美激情视频在线播放| 久久精精品视频| 99精品国产热久久91蜜凸| 国产在线国偷精品产拍免费yy| 国产精品久久久久永久免费观看| 欧美激情精品久久久久| 老司机精品视频网站| 欧美中文在线视频| 先锋a资源在线看亚洲| 午夜激情亚洲| 午夜精品久久久久久99热软件| 99pao成人国产永久免费视频| 136国产福利精品导航| 国产亚洲欧洲997久久综合| 国产精品一级久久久| 国产精品美女久久久免费| 国产精品日韩欧美大师| 欧美日韩在线播放| 欧美日韩一区二区精品| 欧美亚洲成人精品| 国产精品日韩精品欧美在线| 国产欧美 在线欧美| 国产日韩在线视频| 国产资源精品在线观看| 在线观看视频亚洲| 亚洲国产精品精华液2区45| 亚洲国产欧美另类丝袜| 亚洲伦伦在线| 亚洲午夜在线观看视频在线| 亚洲综合首页| 欧美在线在线| 欧美va亚洲va香蕉在线| 欧美激情a∨在线视频播放| 欧美18av| 欧美日韩三区| 国产精品亚发布| 韩国一区二区三区美女美女秀| 激情久久五月| 亚洲精品少妇30p| 亚洲午夜日本在线观看| 欧美一级理论片| 久久偷看各类wc女厕嘘嘘偷窃| 欧美搞黄网站| 欧美日韩成人一区二区三区| 国产精品美女久久久久aⅴ国产馆| 国产日韩欧美精品| 在线观看一区二区精品视频| 日韩视频国产视频| 亚洲欧美另类中文字幕| 久久久久久婷| 欧美日韩亚洲天堂| 国产日韩av在线播放| 在线观看日韩av先锋影音电影院| 亚洲精品中文字幕在线| 亚洲在线网站| 久热爱精品视频线路一| 欧美日韩一区三区| 韩国v欧美v日本v亚洲v| 亚洲美女一区| 欧美中文在线视频| 欧美激情综合五月色丁香| 国产精品高清一区二区三区| 伊人影院久久| 亚洲性视频h| 久久综合国产精品台湾中文娱乐网| 欧美另类99xxxxx| 国产精品日韩一区二区| 亚洲国产你懂的| 亚洲一区久久久| 免费观看国产成人| 国产精品老牛| 亚洲国产一区二区在线| 午夜一区二区三视频在线观看| 欧美成人一区二区在线| 国产精品资源| 亚洲免费电影在线| 一区二区三区成人| 久久亚洲视频| 国产精品一区二区a| 亚洲另类在线一区| 久久精品国产久精国产一老狼 | 久久久噜噜噜久久中文字免| 欧美日韩在线一区| 在线观看国产成人av片| 亚洲欧美日韩国产另类专区| 欧美黄色一区| 国产综合精品| 伊伊综合在线| 午夜精品www| 欧美人成网站| 亚洲大片精品永久免费| 午夜日韩福利| 一区二区日本视频| 老司机免费视频久久| 国产女人精品视频| 中文高清一区| 欧美激情一区二区三区在线| 国产情人节一区| 美女任你摸久久| 国产丝袜一区二区| 亚洲午夜精品视频| 欧美精品亚洲精品| 国产乱码精品一区二区三区五月婷 | 亚洲区一区二| 久久久久久999| 国产精品主播| 国产精品99久久久久久久女警| 欧美成人亚洲| 在线观看免费视频综合| 欧美一区二区三区婷婷月色| 欧美日韩一区二区高清| 亚洲日本久久| 久久精品盗摄| 国产欧美日韩综合一区在线播放 | 久久亚洲捆绑美女| 国产精品乱人伦一区二区| 精品成人在线观看| 欧美在线综合| 国产麻豆精品视频| 亚洲综合视频在线| 欧美日本一道本| 亚洲日本欧美在线| 你懂的一区二区| 在线观看91久久久久久| 久久精品中文字幕免费mv| 国产精品一区2区| 亚洲私人影吧| 欧美视频在线免费看| 99精品视频免费观看| 国产曰批免费观看久久久| 亚洲一区国产视频| 国产精品国产三级国产普通话99| 亚洲精品视频免费观看| 欧美黄在线观看| 亚洲欧洲在线播放| 免费观看日韩| 亚洲黄色三级| 欧美高清视频一区| 亚洲精品国产精品国自产观看浪潮 | 99国产精品国产精品毛片| 久久亚洲国产成人| 一区二区三区在线免费播放| 久久综合久久综合久久| 伊人色综合久久天天| 久久精品人人| 精品电影在线观看| 欧美不卡在线| 在线不卡亚洲| 欧美成人亚洲成人| 日韩视频免费观看高清完整版| 欧美激情麻豆| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲人成人一区二区三区| 欧美福利视频网站| 日韩亚洲精品在线| 欧美午夜精彩| 亚洲欧美在线看| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲国产欧美另类丝袜| 免费观看成人鲁鲁鲁鲁鲁视频| 国产一区二区观看| 午夜精品久久久久久久99黑人| 国产精品一区三区| 久久久久91| 亚洲国产精品一区二区第一页| 欧美成人三级在线| 夜夜嗨av一区二区三区网页| 国产精品美女一区二区| 欧美一区二区视频在线| 在线观看视频一区二区| 欧美日韩ab| 在线视频亚洲欧美| 国产欧美日韩亚洲一区二区三区| 欧美综合国产精品久久丁香| 在线观看国产成人av片| 欧美三级韩国三级日本三斤| 午夜电影亚洲| 亚洲福利视频一区二区| 欧美日精品一区视频| 欧美在线999| 亚洲日本免费| 欧美网站大全在线观看| 欧美亚洲一区| 亚洲激情网站| 国产精品a久久久久久| 久久久福利视频| 一本大道久久精品懂色aⅴ| 国产九区一区在线| 欧美成人黄色小视频| 亚洲一级二级在线| 激情欧美亚洲| 欧美日韩人人澡狠狠躁视频| 欧美一区二区在线免费播放| 亚洲欧洲一区二区三区| 国产精品入口| 欧美成人黑人xx视频免费观看| 亚洲欧美国产日韩中文字幕|