久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

【整理分享】Vue開發(fā)必備的操作技巧,快來(lái)收藏吧!

掌握多一門技巧,Vue 編程效率就高一分,工欲善其事,必先利其器。本篇文章給大家整理分享一些必備Vue 的操作技巧,希望對(duì)大家有所幫助!

【整理分享】Vue開發(fā)必備的操作技巧,快來(lái)收藏吧!

(學(xué)習(xí)視頻分享:vue視頻教程)

鍵盤事件

  • js 中我們通常通過綁定一個(gè)事件,去獲取按鍵的編碼,再通過 event 中的 keyCode 屬性去獲得編碼
  • 如果我們需要實(shí)現(xiàn)固定的鍵才能觸發(fā)事件時(shí)就需要不斷的判斷,其實(shí)很麻煩
let button = document.querySelector('button')  button.onkeyup = function (e) {     console.log(e.key)     if (e.keyCode == 13) {         console.log('我是回車鍵')     } }
  • vue 中給一些常用的按鍵提供了別名,我們只要在事件后加上響應(yīng)的別名即可
  • vue 中常見別名有:up/向上箭頭down/向下箭頭left/左箭頭right/右箭頭space/空格tab/換行esc/退出enter/回車delete/刪除
// 只有按下回車鍵時(shí)才會(huì)執(zhí)行 send 方法 <input v-on:keyup.enter="send" type="text">
  • 對(duì)于 Vue 中未提供別名的鍵,可以使用原始的 key 值去綁定,所謂 key 值就是 event.key 所獲得的值
  • 如果 key 值是單個(gè)字母的話直接使用即可,如果是由多個(gè)單詞組成的駝峰命名,就需要將其拆開,用 - 連接
// 只有按下q鍵時(shí)才會(huì)執(zhí)行send方法 <input v-on:keyup.Q="send" type="text">  // 只有按下capslock鍵時(shí)才會(huì)執(zhí)行send方法 <input v-on:keyup.caps-lock="send" type="text">
  • 對(duì)于系統(tǒng)修飾符 ctrlaltshift 這些比較復(fù)雜的鍵使用而言,分兩種情況
  • 因?yàn)檫@些鍵可以在按住的同時(shí),去按其他鍵,形成組合快捷鍵
  • 當(dāng)觸發(fā)事件為 keydown 時(shí),我們可以直接按下修飾符即可觸發(fā)
  • 當(dāng)觸發(fā)事件為 keyup 時(shí),按下修飾鍵的同時(shí)要按下其他鍵,再釋放其他鍵,事件才能被觸發(fā)。
// keydown事件時(shí)按下alt鍵時(shí)就會(huì)執(zhí)行send方法 <input v-on:keydown.Alt="send" type="text">  // keyup事件時(shí)需要同時(shí)按下組合鍵才會(huì)執(zhí)行send方法 <input v-on:keyup.Alt.y="send" type="text">
  • 當(dāng)然我們也可以自定義按鍵別名
  • 通過 Vue.config.keyCodes.自定義鍵名=鍵碼 的方式去進(jìn)行定義
// 只有按下回車鍵時(shí)才會(huì)執(zhí)行send方法 <input v-on:keydown.autofelix="send" type="text">      // 13是回車鍵的鍵碼,將他的別名定義為autofelix Vue.config.keyCodes.autofelix=13

圖片預(yù)覽

  • 在項(xiàng)目中我們經(jīng)常需要使用到圖片預(yù)覽,viewerjs 是一款非常炫酷的圖片預(yù)覽插件
  • 功能支持包括圖片放大、縮小、旋轉(zhuǎn)、拖拽、切換、拉伸等
  • 安裝 viewerjs 擴(kuò)展
npm install viewerjs --save
  • 引入并配置功能
//引入 import Vue from 'vue'; import 'viewerjs/dist/viewer.css'; import Viewer from 'v-viewer';  //按需引入 Vue.use(Viewer);  Viewer.setDefaults({     'inline': true,     'button': true, //右上角按鈕     "navbar": true, //底部縮略圖     "title": true, //當(dāng)前圖片標(biāo)題     "toolbar": true, //底部工具欄     "tooltip": true, //顯示縮放百分比     "movable": true, //是否可以移動(dòng)     "zoomable": true, //是否可以縮放     "rotatable": true, //是否可旋轉(zhuǎn)     "scalable": true, //是否可翻轉(zhuǎn)     "transition": true, //使用 CSS3 過度     "fullscreen": true, //播放時(shí)是否全屏     "keyboard": true, //是否支持鍵盤     "url": "data-source",     ready: function (e) {         console.log(e.type, '組件以初始化');     },     show: function (e) {         console.log(e.type, '圖片顯示開始');     },     shown: function (e) {         console.log(e.type, '圖片顯示結(jié)束');     },     hide: function (e) {         console.log(e.type, '圖片隱藏完成');     },     hidden: function (e) {         console.log(e.type, '圖片隱藏結(jié)束');     },     view: function (e) {         console.log(e.type, '視圖開始');     },     viewed: function (e) {         console.log(e.type, '視圖結(jié)束');         // 索引為 1 的圖片旋轉(zhuǎn)20度         if (e.detail.index === 1) {             this.viewer.rotate(20);         }     },     zoom: function (e) {         console.log(e.type, '圖片縮放開始');     },     zoomed: function (e) {         console.log(e.type, '圖片縮放結(jié)束');     } })
  • 使用圖片預(yù)覽插件
  • 單個(gè)圖片使用
<template>   <div>     <viewer>       <img :src="cover" style="cursor: pointer;" height="80px">     </viewer>   </div> </template>   <script> export default {   data() {     return {       cover: "//www.autofelix.com/images/cover.png"     }   } } </script>
  • 多個(gè)圖片使用
<template>   <div>     <viewer :images="imgList">       <img v-for="(imgSrc, index) in imgList" :key="index" :src="imgSrc" />     </viewer>   </div> </template>   <script> export default {   data() {     return {       imgList: [         "//www.autofelix.com/images/pic_1.png",         "//www.autofelix.com/images/pic_2.png",         "//www.autofelix.com/images/pic_3.png",         "//www.autofelix.com/images/pic_4.png",         "//www.autofelix.com/images/pic_5.png"       ]     }   } } </script>

跑馬燈

  • 這是一款好玩的特效技巧
  • 比如你在機(jī)場(chǎng)接人時(shí),可以使用手機(jī)跑馬燈特效,成為人群中最靚的仔
  • 跑馬燈特效其實(shí)就是將最前面的文字刪除,添加到最后一個(gè),這樣就形成了文字移動(dòng)的效果
<!DOCTYPE html> <html>  <head>     <meta charset="UTF-8">     <title>跑馬燈</title>     <style type="text/css">         #app {             padding: 20px;         }     </style> </head>  <body>     <div id="app">         <button @click="run">應(yīng)援</button>         <button @click="stop">暫停</button>         <h3>{{ msg }}</h3>     </div> </body> <script src="https://cdn.jsdelivr.net/npm/vue@2.7.0/dist/vue.min.js"></script> <script>     new Vue({         el: "#app",         data: {             msg: "飛兔小哥,飛兔小哥,我愛飛兔小哥~~~",             timer: null // 定時(shí)器         },         methods: {             run() {                 // 如果timer已經(jīng)賦值就返回                 if (this.timer) return;                  this.timer = setInterval(() => {                     // msg分割為數(shù)組                     var arr = this.msg.split('');                     // shift刪除并返回刪除的那個(gè),push添加到最后                     // 把數(shù)組第一個(gè)元素放入到最后面                     arr.push(arr.shift());                     // arr.join('')吧數(shù)組連接為字符串復(fù)制給msg                     this.msg = arr.join('');                 }, 100)             },             stop() {                 //清除定時(shí)器                 clearInterval(this.timer);                 //清除定時(shí)器之后,需要重新將定時(shí)器置為null                 this.timer = null;             }         }     }) </script>  </html>

倒計(jì)時(shí)

  • 對(duì)于倒計(jì)時(shí)技巧,應(yīng)用的地方很多
  • 比如很多搶購(gòu)商品的時(shí)候,我們需要有一個(gè)倒計(jì)時(shí)提醒用戶開搶時(shí)間
  • 其實(shí)就是每隔一秒鐘,去重新計(jì)算一下時(shí)間,并賦值到 DOM
<!DOCTYPE html> <html>  <head>     <meta charset="UTF-8">     <title>倒計(jì)時(shí)</title> </head>  <body>     <div id="app">         <div>搶購(gòu)開始時(shí)間:{{count}}</div>     </div> </body> <script src="https://cdn.jsdelivr.net/npm/vue@2.7.0/dist/vue.min.js"></script> <script>     new Vue({         el: "#app",         data() {             return {                 count: '', //倒計(jì)時(shí)                 seconds: 864000 // 10天的秒數(shù)             }         },         mounted() {             this.Time() //調(diào)用定時(shí)器         },         methods: {             // 天 時(shí) 分 秒 格式化函數(shù)             countDown() {                 let d = parseInt(this.seconds / (24 * 60 * 60))                 d = d < 10 ? "0" + d : d                 let h = parseInt(this.seconds / (60 * 60) % 24);                 h = h < 10 ? "0" + h : h                 let m = parseInt(this.seconds / 60 % 60);                 m = m < 10 ? "0" + m : m                 let s = parseInt(this.seconds % 60);                 s = s < 10 ? "0" + s : s                 this.count = d + '天' + h + '時(shí)' + m + '分' + s + '秒'             },             //定時(shí)器沒過1秒?yún)?shù)減1             Time() {                 setInterval(() => {                     this.seconds -= 1                     this.countDown()                 }, 1000)             },         }     }) </script>  </html>

自定義右鍵菜單

  • 在項(xiàng)目中,我們有時(shí)候需要自定義鼠標(biāo)右鍵出現(xiàn)的選項(xiàng),而不是瀏覽器默認(rèn)的右鍵選項(xiàng)
  • 對(duì)于如何實(shí)現(xiàn)右鍵菜單,在 Vue 中其實(shí)很簡(jiǎn)單,只要使用 vue-contextmenujs 插件即可
  • 安裝 vue-contextmenujs 插件
npm install vue-contextmenujs
  • 引入
//引入 import Vue from 'vue'; import Contextmenu from "vue-contextmenujs"  Vue.use(Contextmenu);
  • 使用方法
  • 可以使用 <i class="icon"></i> 可以給選項(xiàng)添加圖標(biāo)
  • 可以使用 style 標(biāo)簽自定義選項(xiàng)的樣式
  • 可以使用 disabled 屬性禁止選項(xiàng)可以點(diǎn)擊
  • 可以使用 divided:true 設(shè)置選項(xiàng)的下劃線
  • 可以使用 children 設(shè)置子選項(xiàng)
<style>     .custom-class .menu_item__available:hover,     .custom-class .menu_item_expand {         background: lightblue !important;         color: #e65a65 !important;     } </style>   <template>     <div style="width:100vw;height:100vh" @contextmenu.prevent="onContextmenu"></div> </template>  <script>     import Vue from 'vue'     import Contextmenu from "vue-contextmenujs"     Vue.use(Contextmenu);      export default {         methods: {             onContextmenu(event) {                 this.$contextmenu({                     items: [                         {                             label: "返回",                             onClick: () => {                                 // 添加點(diǎn)擊事件后的自定義邏輯                             }                         },                         { label: "前進(jìn)", disabled: true },                         { label: "重載", divided: true, icon: "el-icon-refresh" },                         { label: "打印", icon: "el-icon-printer" },                         {                             label: "翻譯",                             divided: true,                             minWidth: 0,                             children: [{ label: "翻譯成中文" }, { label: "翻譯成英文" }]                         },                         {                             label: "截圖",                             minWidth: 0,                             children: [                                 {                                     label: "截取部分",                                     onClick: () => {                                         // 添加點(diǎn)擊事件后的自定義邏輯                                     }                                 },                                 { label: "截取全屏" }                             ]                         }                     ],                     event, // 鼠標(biāo)事件信息                     customClass: "custom-class", // 自定義菜單 class                     zIndex: 3, // 菜單樣式 z-index                     minWidth: 230 // 主菜單最小寬度                 });                 return false;             }         }     }; </script>

打印功能

  • 對(duì)于網(wǎng)頁(yè)支持打印功能,在很多項(xiàng)目中也比較常見
  • 而 Vue 中使用打印功能,可以使用 vue-print-nb 插件
  • 安裝 vue-print-nb 插件
npm install vue-print-nb --save
  • 引入打印服務(wù)
import Vue from 'vue' import Print from 'vue-print-nb' Vue.use(Print);
  • 使用
  • 使用 v-print 指令即可啟動(dòng)打印功能
<div id="printStart">     <p>紅酥手,黃縢酒,滿城春色宮墻柳。</p>     <p>東風(fēng)惡,歡情薄。</p>     <p>一懷愁緒,幾年離索。</p>     <p>錯(cuò)、錯(cuò)、錯(cuò)。</p>     <p>春如舊,人空瘦,淚痕紅浥鮫綃透。</p>     <p>桃花落,閑池閣。</p>     <p>山盟雖在,錦書難托。</p>     <p>莫、莫、莫!</p> </div> <button v-print="'#printStart'">打印</button>

JSONP請(qǐng)求

  • jsonp解決跨域 的主要方式之一
  • 所以學(xué)會(huì)在 vue 中使用 jsonp 其實(shí)還是很重要的
  • 安裝 jsonp 擴(kuò)展
npm install vue-jsonp --save-dev
  • 注冊(cè)服務(wù)
// 在vue2中注冊(cè)服務(wù) import Vue from 'vue' import VueJsonp from 'vue-jsonp' Vue.use(VueJsonp)  // 在vue3中注冊(cè)服務(wù) import { createApp } from 'vue' import App from './App.vue' import VueJsonp from 'vue-jsonp' createApp(App).use(VueJsonp).mount('#app')
  • 使用方法
  • 需要注意的是,在使用 jsonp 請(qǐng)求數(shù)據(jù)后,回調(diào)并不是在 then 中執(zhí)行
  • 而是在自定義的 callbackName 中執(zhí)行,并且需要掛載到 window 對(duì)象上
<script> export default {   data() {...},   created() {     this.getUserInfo()   },   mounted() {     window.jsonpCallback = (data) => {         // 返回后回調(diào)         console.log(data)     }   },   methods: {     getUserInfo() {      this.$jsonp(this.url, {       callbackQuery: "callbackParam",       callbackName: "jsonpCallback"      })       .then((json) => {           // 返回的jsonp數(shù)據(jù)不會(huì)放這里,而是在 window.jsonpCallback           console.log(json)       })       }   }  } </script>

【相關(guān)視頻教程推薦:vuejs入門教程、web前端入門】

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产精品日韩精品中文字幕| 国产精品一区二区av日韩在线| 国产精品一区三区在线观看| 国产精品综合色区在线观看| 精品国产一区二区三区噜噜噜| 久久99国产精品视频| 精品日韩一区| 久久久久久久久久久9不雅视频| 亚洲欧美日韩高清在线| 亚洲精品伦理| 久久亚洲国产精品尤物| 日本在线精品| 欧美精品资源| 久久午夜精品| 国产精品美女在线观看直播| 色网在线免费观看| 国产美女一区| 日韩精品福利一区二区三区| 精品国产a一区二区三区v免费| 日韩高清成人| 蜜桃视频在线观看一区| 久久97视频| 亚洲国产影院| 97精品久久| 亚洲成人va| 日韩有吗在线观看| 欧美国产美女| 亚洲免费在线| 美女国产一区二区三区| 欧美日中文字幕| 91av一区| 欧美成人精品| 美女视频黄免费的久久| 影音国产精品| 精品色999| 久久大逼视频| 吉吉日韩欧美| 日韩精品国产欧美| 久久国产电影| 久久99视频| 亚洲欧美日韩专区| 福利一区二区三区视频在线观看| 亚洲欧美激情诱惑| 天堂中文av在线资源库| 日韩国产欧美视频| 亚洲二区免费| 欧美激情久久久久久久久久久| 午夜欧美精品| 欧美xxxx中国| 国产免费av国片精品草莓男男| 影院欧美亚洲| 伊人久久国产| 欧美日本不卡| 在线精品福利| 欧美日中文字幕| 精品三级在线观看视频| 欧美天堂一区二区| jiujiure精品视频播放| 国产一区二区三区网| 91精品国产一区二区在线观看| 欧美特黄一区| 国产精品久久久久av电视剧| 国产伦精品一区二区三区千人斩| 三级欧美在线一区| 伊人精品视频| 欧美/亚洲一区| 秋霞国产精品| 成人午夜网址| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 日韩高清在线观看一区二区| 91精品一区二区三区综合在线爱| 精品三级av在线导航| 日韩av黄色在线| 热久久国产精品| 午夜精品免费| 亚洲成人国产| 日韩视频网站在线观看| 国产一区2区| 国产精品.xx视频.xxtv| 清纯唯美亚洲综合一区| 日韩在线成人| 日韩高清二区| 少妇精品久久久一区二区| 亚洲一区二区小说| 美国欧美日韩国产在线播放| 999在线观看精品免费不卡网站| 久久久久网站| 影视先锋久久| 亚洲高清毛片| 精品中文字幕一区二区三区av| 久久麻豆精品| 亚洲国产一区二区三区在线播放 | 国产精品4hu.www| 国产乱人伦精品一区| 青草国产精品久久久久久| 日韩毛片一区| 国产精品手机在线播放| 久久av日韩| 国内在线观看一区二区三区 | 国产欧美日韩一级| 久久99精品久久久久久园产越南 | 久久精品亚洲| 久久99精品久久久久久园产越南| 国产伦理久久久久久妇女| 久久精品99久久久| 国产精品欧美日韩一区| 美女免费视频一区| 日韩av有码| 麻豆国产精品| 日韩欧美在线中字| 亚洲手机在线| 久久高清免费观看| 亚洲五月综合| 日本久久二区| 麻豆成人在线观看| 国产成人久久精品一区二区三区| 国产不卡人人| 日韩精品欧美| 伊人久久亚洲影院| 日韩欧美精品一区二区综合视频| 国产视频网站一区二区三区| 国产高潮在线| 黑丝一区二区三区| 亚洲精品高潮| 美女视频一区在线观看| 秋霞影院一区二区三区| 亚洲欧美日韩精品一区二区| 日本午夜精品一区二区三区电影| 精品视频一区二区三区四区五区| 99精品视频精品精品视频| 在线亚洲成人| 久久99青青| 黑丝一区二区三区| 日韩高清不卡一区| 高清不卡亚洲| 亚洲日韩视频| 在线手机中文字幕| 蜜臀av一区二区在线免费观看| 国产精品网址| 亚洲欧美日韩高清在线| 国产视频一区二| 欧美日韩水蜜桃| 91麻豆精品| 久久精品免费一区二区三区| 日本在线一区二区三区| 国产66精品| 日韩在线卡一卡二| 精品久久影院| 一区二区三区国产盗摄| 超碰超碰人人人人精品| 日韩精品视频在线看| 999精品一区| 国产毛片精品| 亚洲欧美网站| 高清av不卡| 久久精品凹凸全集| 免费av一区二区三区四区| 国产三级一区| 国产精品社区| 国产精品久久久久久久久久10秀| 首页欧美精品中文字幕| 在线亚洲人成| 国产乱码精品| 亚洲一区欧美| 精品一区毛片| 成人精品视频| 国产丝袜一区| 午夜在线视频一区二区区别| 日韩综合在线| 欧美日韩一区二区三区不卡视频 | 日韩中文一区二区| 日韩精品一卡| 久久影视三级福利片| 在线一区二区三区视频| 国产综合欧美| 给我免费播放日韩视频| 欧美一区成人| 亚洲一二av| 亚洲综合精品四区| 神马午夜久久| 精品精品久久| 国产乱人伦丫前精品视频| 久久成人国产| 婷婷亚洲五月色综合| 桃色一区二区| 精品国产免费人成网站| 久久一区亚洲| 国产精品亚洲综合在线观看| 伊人国产精品| 视频一区视频二区在线观看| 亚洲夜间福利| 欧美日韩免费观看视频| 欧美激情综合| 欧美另类中文字幕| 日韩国产欧美三级| 亚洲欧美网站在线观看| 免费成人在线观看| 伊人影院久久| 好看不卡的中文字幕| 影院欧美亚洲|