国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue 監(jiān)聽(tīng)元素前后變化值實(shí)例

瀏覽:68日期:2022-12-23 16:31:02

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

export default { data() { return { item: ’’ } }, watch: { item(now, before){ let remove = before.filter(x => now.indexOf(x) == -1); let add = now.filter(x => before.indexOf(x) == -1); /* 顯示字符串或數(shù)組元素的增加和減少 */ console.log(add, remove); } }}

補(bǔ)充知識(shí):Vuejs+Element監(jiān)聽(tīng)-window.resize-el-menu響應(yīng)式顯示

效果

Vue 監(jiān)聽(tīng)元素前后變化值實(shí)例

代碼

template

<template> <div class='sidebar'> <!-- 折疊按鈕 --> <div @click='collapseChage'> <i v-show='!collapse'> &nbsp;&nbsp; <small>收縮側(cè)邊欄</small> </i> <i v-show='collapse'></i> </div> <el-menu :default-active='onRoutes' :collapse='collapse' text-color='#8d9199' active-text-color='#20a0ff' unique-opened router > <template v-for='item in items'> <template v-if='item.subs'> <el-submenu :index='item.index' :key='item.index'> <template slot='title'> <i :class='item.icon'></i> <span slot='title'>{{ item.title }}</span> </template> <template v-for='subItem in item.subs'> <el-submenu v-if='subItem.subs' :index='subItem.index' :key='subItem.index'> <template slot='title'> <i :class='subItem.icon'></i> {{ subItem.title }} </template> <el-menu-item v-for='(threeItem,i) in subItem.subs' :key='i' :index='threeItem.index' >{{ threeItem.title }}</el-menu-item> </el-submenu> <el-menu-item v-else :index='subItem.index' :key='subItem.index'> <i :class='subItem.icon'></i> {{ subItem.title }} </el-menu-item> </template> </el-submenu> </template> <template v-else> <el-menu-item :index='item.index' :key='item.index'> <i :class='item.icon'></i> <span slot='title'>{{ item.title }}</span> </el-menu-item> </template> </template> </el-menu> <div> <i v-show='collapse'></i> </div> </div></template>

javascript

<script>import bus from './bus';import { menu } from '../../data/menu';export default { data() { return { collapse: false, items: menu, screenWidth: 1000 }; }, computed: { onRoutes() { return this.$route.path.replace('/', ''); } }, created() { // 通過(guò) Event Bus 進(jìn)行組件間通信,來(lái)折疊側(cè)邊欄 bus.$on('collapse', msg => { this.collapse = msg; }); }, mounted() { // if (document.body.clientWidth < 1500) { // this.collapseChage(); // } const that = this; window.addEventListener('resize', function() { return (() => { window.screenWidth = document.body.clientWidth; that.screenWidth = window.screenWidth; })(); }); }, watch: { screenWidth(val) { if (!this.timer) { this.screenWidth = val; this.timer = true; let that = this; setTimeout(function() { // that.screenWidth = that.$store.state.canvasWidth console.log(that.screenWidth); that.auto(); that.timer = false; }, 400); } } }, methods: { // 側(cè)邊欄折疊 collapseChage() { this.collapse = !this.collapse; bus.$emit('collapse', this.collapse); }, auto() { if (this.screenWidth < 1200) { console.log('收起來(lái)'); this.collapse = true; bus.$emit('collapse', true); } else { console.log('展開(kāi)'); this.collapse = false; bus.$emit('collapse', false); } } }};</script>

css

<style scoped>.sidebar { z-index: 1024; display: block; position: fixed; left: 0; top: 70px; bottom: 0; overflow-y: scroll;}.sidebar::-webkit-scrollbar { width: 0;}.sidebar-el-menu:not(.el-menu--collapse) { width: 200px;}.sidebar > ul { height: 100%; /*寫給不支持calc()的瀏覽器*/ height: calc(100% - 52px); top: 30px; background-color: rgb(235, 239, 243); border-top: 1px solid #d6d6d6;}.sidebar > ul > li,.sidebar > ul > li div { background-color: rgb(235, 239, 243);}.sidebar > ul > li > ul { background-color: rgb(235, 239, 243);}.el-menu { background-color: rgb(235, 239, 243);}i { margin-right: 10px;}.collapse-btn { height: 30px; width: 100%; cursor: pointer; line-height: 30px; position: absolute; top: 0; left: 0; background-color: #f4f6fa; color: #fff; text-align: center; overflow: hidden; box-sizing: border-box; box-shadow: 0 5px 10px #ddd;}.collapse-btn i { color: #8d9199; padding: 1px; cursor: pointer; overflow: hidden; text-overflow: ellipsis;}/* .collapse-btn:before{ content: ''; display: block; height: 0; border-top: 1px dotted #909399; position: absolute; left: 15px; right: 15px; top: 18px; } */</style>

##注意⚠️

此開(kāi)發(fā)框架是github 名為 lin-xin 的 vue-manage-system

因公司項(xiàng)目需要兼容iPad,故而修改

詳細(xì)代碼點(diǎn)擊這里

以上這篇Vue 監(jiān)聽(tīng)元素前后變化值實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 欧美成人精品第一区 | 美女又黄又免费视频 | 男人精品一线视频在线观看 | 成人网视频在线观看免费 | 久久久久久毛片免费播放 | 一级毛片黄片 | 欧美一级视频在线 | 午夜日b视频 | 成人欧美精品一区二区不卡 | 成人高清无遮挡免费视频软件 | 2022麻豆福利午夜久久 | 99视频在线观看免费视频 | 精品91一区二区三区 | 国产欧美一区二区精品性色 | 毛片一级在线观看 | 久久视频这里只有精品 | 一个色综合久久 | 久草在线新首页 | 中文字幕在线视频网站 | 国产性自拍| 亚洲国产精品免费在线观看 | 亚洲国产欧美精品一区二区三区 | 在线久草 | 亚洲精品在线播放视频 | 久草首页在线观看 | 日本精品久久久久久久 | 嫩模大尺度人体福利视频 | 成人免费一区二区三区在线观看 | 国产成人精品一区二区秒拍 | 亚洲视频日韩 | 成年女人免费视频播放成年m | 九九手机视频 | 久久性妇女精品免费 | 日韩精品国产一区 | 日韩三级视频在线观看 | 久艹视频在线观看 | 中文字幕一区在线 | 成人欧美在线视频 | 亚洲日韩视频 | 国产视频www | 欧美人与鲁交大毛片免费 |