日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

VUE的tab頁面切換的四種方法

瀏覽:30日期:2022-09-30 14:27:33
1.靜態實現方法:

效果圖:

VUE的tab頁面切換的四種方法

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>view的tab交互</title> <link rel='stylesheet' href='http://www.b3g6.com/css/demo.css' rel='external nofollow' rel='external nofollow' rel='external nofollow' rel='external nofollow' ></head><body><div id='my'><ul class='tab_tit'> <li : @click='n=1'>標題一</li> <li : @click='n=2'>標題二</li> <li : @click='n=3'>標題三</li> <li : @click='n=4'>標題四</li></ul><!-- neirong --><div class='tab_con'> <div v-show='n==1'>內容一</div> <div v-show='n==2'>內容二</div> <div v-show='n==3'>內容三</div> <div v-show='n==4'>內容四</div></div></div><script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script><script> Vue.config.productionTip=false </script> <script src='http://www.b3g6.com/js/tab.js' type='text/javascript'></script></body></html>

css

*{ margin: 0; padding: 0; box-sizing:border-box;}body,html{ height: 100%;}.demo_warp .tab_tit { display: flex; flex: 1; margin:.2rem;}.demo_warp .active { color:red; background-color: cadetblue;}.demo_warp ul li { list-style: none; width: 23%; text-align: center; background-color: #ccc; margin:0 1%;}.demo_warp .tab_con { width: 100%; height: 3rem; border:1px solid rgb(85, 85, 177); text-align: center;}

js

window.onload=function(){ new Vue({ el:’#my’, data:{//響應式的數據 data變化頁面也會跟著變化 n:1 } })}2.第二種模擬動態方法

效果如上圖所示:(省略)代碼:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>view的tab交互</title> <link rel='stylesheet' href='http://www.b3g6.com/css/demo.css' rel='external nofollow' rel='external nofollow' rel='external nofollow' rel='external nofollow' ></head><body><div id='my'><ul class='tab_tit'> <li v-for='(v,i) in title' : @click='n=i'>{{v}}</li></ul><!-- neirong --><div class='tab_con'> <div v-for='(v,i) in con' v-show='n==i'>{{v}}</div></div></div><script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script><script> Vue.config.productionTip=false </script> <script src='http://www.b3g6.com/js/tab.js' type='text/javascript'></script></body></html>

css

*{ margin: 0; padding: 0; box-sizing:border-box;}body,html{ height: 100%;}.demo_warp .tab_tit { display: flex; flex: 1; margin:.2rem;}.demo_warp .active { color:red; background-color: cadetblue;}.demo_warp ul li { list-style: none; width: 23%; text-align: center; background-color: #ccc; margin:0 1%;}.demo_warp .tab_con { width: 100%; height: 3rem; border:1px solid rgb(85, 85, 177); text-align: center;}

js

window.onload=function(){ new Vue({ el:’#my’, data:{//響應式的數據 data變化頁面也會跟著變化 n:0, title:['標題一','標題二','標題三','標題四'], con:['內容一','內容二','內容三','內容四'] } })}3.第三種動態數據方法

效果圖:(滾動條的實現方式)

VUE的tab頁面切換的四種方法

代碼:

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>view的tab交互</title> <link rel='stylesheet' href='http://www.b3g6.com/css/demo.css' rel='external nofollow' rel='external nofollow' rel='external nofollow' rel='external nofollow' ></head><body><div id='my'><ul class='tab_tit'> <li v-for='(v,i) in lists' : @click='n=i'>{{v.title}}</li></ul><!-- neirong --><div class='tab_con'> <div v-for='(v,i) in lists' v-show='n==i'>{{v.con}}</div></div></div><script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script><script> Vue.config.productionTip=false </script> <script src='http://www.b3g6.com/js/tab.js' type='text/javascript'></script></body></html>

css

*{ margin: 0; padding: 0; box-sizing:border-box;}body,html{ height: 100%;}.demo_warp .tab_tit{ display: flex; justify-content: space-between; white-space: nowrap; overflow-y: hidden; overflow-x: scroll; margin:1% 1% 1% 0;} ::-webkit-scrollbar{ display: none; }.demo_warp .active { color:red; background-color: cadetblue;}.demo_warp ul li { list-style: none; padding:1.2% 3.2%; text-align: center; background-color: #ccc; margin-left: 1%;}.demo_warp .tab_con { width: 100%; height: 3rem; border:1px solid rgb(85, 85, 177); text-align: center;}

js

window.onload=function(){ new Vue({ el:’#my’, data:{//響應式的數據 data變化頁面也會跟著變化 n:0, lists:[//可以有很多條數據//數組對象的形式 {title:’標題一’,con:’內容一’}, {title:’標題二’,con:’內容二’}, {title:’標題三’,con:’內容三’}, {title:’標題四’,con:’內容四’}, {title:’標題五’,con:’內容五’}, {title:’標題六’,con:’內容六’}, {title:’標題七’,con:’內容七’}, {title:’標題八’,con:’內容八’}, ] } })}4.動態實現方法(模擬后臺數據實現)

效果圖:

VUE的tab頁面切換的四種方法

代碼:

<html lang='en'><head> <meta charset='UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>view的tab交互</title> <link rel='stylesheet' type='text/css' href='http://www.b3g6.com/css/demo.css' rel='external nofollow' rel='external nofollow' rel='external nofollow' rel='external nofollow' ></head><body><div id='my'> <ul class='tab_tit'> <li v-for='(v,i) in lists' : @click='m=i' :key='i.title'>{{v.title}}</li> </ul> <!-- neirong --> <div class='tab_con'> <div v-for='(v,i) in lists' v-show='m==i' :key='i.con'>{{v.con}}</div> </div> <!-- -----------動態數據----------- --><ul class='tab_tit'> <li v-for='(item, index) in itemList' : @click='n=index' :key='index'>{{item.name}}</li></ul><!-- neirong --><div class='tab_con'> <div v-for='(item, index) in itemList' v-show='n==index' :key='index'>{{item.state}}</div></div></div><script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script><script> Vue.config.productionTip=false </script> <script src='http://www.b3g6.com/node_modules/axios/dist/axios.js'></script><script src='http://www.b3g6.com/js/tab.js' type='text/javascript'></script></body></html>

css

*{ margin: 0; padding: 0; box-sizing:border-box;}body,html{ height: 100%;}.demo_warp .tab_tit{ display: flex; justify-content: space-between; white-space: nowrap; overflow-y: hidden; overflow-x: scroll; margin:1% 1% 1% 0;} ::-webkit-scrollbar{ display: none; }.demo_warp .active { color:red; background-color: cadetblue;}.demo_warp ul li { list-style: none; padding:1.2% 3.2%; text-align: center; background-color: #ccc; margin-left: 1%;}.demo_warp .tab_con { width: 100%; height: 3rem; border:1px solid rgb(85, 85, 177); text-align: center;}

tab.js

window.onload=function(){ new Vue({ el:’#my’, data(){//響應式的數據 data變化頁面也會跟著變化 return{ n:0, m:0, lists:[ {title:’標題一’,con:’內容一’}, {title:’標題二’,con:’內容二’}, {title:’標題三’,con:’內容三’}, {title:’標題四’,con:’內容四’}, {title:’標題五’,con:’內容五’}, {title:’標題六’,con:’內容六’}, {title:’標題七’,con:’內容七’}, {title:’標題八’,con:’內容八’}, ], itemList:[] } }, methods:{ getList:function(){//this:--【函數和定時器的this指向都是window (而我們是要this指向vue實例)】var that=this;//局部定義改變this指向//每執行此方法,提前清空數組,保證往下執行代碼,數組為空// this.itemList = [];axios({ method:’get’, url:’http://localhost:4000/list’}).then(function(res){ console.log(res); that.itemList = res.data.result;}).catch(function(error){ console.log(error);}) } }, mounted:function(){ this.getList(); }, })}

nodeServer.js

/* connect 是一個node中間件 (middeware)框架 如果把一個http處理過程比作是污水處理 中間件就像是一層層的過濾網 每個中間件把http處理過程中通過改寫 request或(和)response的數據、狀態、實現了特定的功能 中間件就是類似于一個過濾器的東西 在客戶端和應用程序之間的一個處理請求和響應的方法. *///創建中間介 啟動服務 node node.js var connect = require(’connect’);//創建連接var bodyParser=require(’body-parser’);//body解析 用于處理 JSON、RAW、Text和URL編碼的數據.var lists = {};var app = connect() .use(bodyParser.json())//JSON解析 .use(bodyParser.urlencoded({extended:true})) //use()方法還有一個可選的路徑字符串 對傳入請求的URL的開始匹配 //use()方法來維護一個中間件隊列 .use(function(req,res,next){ //跨域處理 //website you wish to allow to connect res.setHeader(’Access-Control-Allow-origin’,’*’);//允許任何源 //Request Methods you width to allow res.setHeader(’Access-Control-Allow-Methods’,’CET’,’POST’,’OPTIONS’,’PUT’,’PATCH’,’DELETE’);//允許任何方法 //Request headers you wish to allow res.setHeader(’Access-Control-Allow-Headers’,’*’);//允許任何類型 res.writeHead(200,{'Content-Type':'text/plain/xml;charset=utf-8'});//utf-8轉碼 next();//next方法就是一個遞歸調用 }) .use(’/list’,function(req,res,next){ var data={ 'code':'200', 'msg':'success', 'result':[ {name:'手機',state:'采購一'}, {name:'包包',state:'采購二'}, {name:'衣服',state:'采購三'}, {name:'電腦',state:'采購四'}, {name:'電子產品',state:'采購五'} ] } res.end(JSON.stringify(data)); next(); }) .use(’/list_get’,function(req,res,next){ var data={ 'code':’200’, 'msg':'success', 'result':lists } res.end(JSON.stringify(data)); next(); }) .use(’/list_add’,function(req,res,next){ if(req.method==’POST’){ console.log(req.body.name); lists.push({name:req.body.name,state:req.body.state,id:index++}); var data={'code':200,'msg':'success'}; res.end(JSON.stringify(data)); }else{ res.end(JSON.stringify({})); } next(); }) .use(’/list_del’,function(req,res,next){ console.log(req.body.id); //lists=lists.filter(list=>list.id!=req.body.id); for(var i=0;i<lists.length;i++){ if(req.body.id===lists[i].id){ lists.splice(i,1); } } console.log(lists); var data={'code':200,'msg':'success'}; res.end(JSON.stringify(data)); next(); }) .listen(4000); console.log(’Server started on port 4000.’);

插件:(需要下載的插件)

VUE的tab頁面切換的四種方法

1.先啟動服務node nodeServer.js(不能關閉,否則就會調取不到數據)2.之后運行html頁面 。

項目遇到的bug:

vue中v-for循環遍歷后,當前內容不渲染的問題,因為this指向的問題導致.

解決方法一:

VUE的tab頁面切換的四種方法

解決方法二:

VUE的tab頁面切換的四種方法

解決方法三:

VUE的tab頁面切換的四種方法

總結:url:接口要寫自己后臺的接口哦,這里只是模擬的接口,nodeServer.js文件可以定義多種格式的數據類型,也可以在本地自定義嵌套多種需要的類型,先試用之后可以在調后臺數據。

推薦學習VUE:文檔 ::https://cn.vuejs.org/v2/guide/list.html

到此這篇關于VUE的tab頁面切換的四種方法的文章就介紹到這了,更多相關VUE tab頁面切換內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜臀av亚洲一区中文字幕| 国产精品一区二区三区av| 野花国产精品入口| 欧美色图国产精品| 日韩中文字幕在线一区| 伊人国产精品| 国产欧美日韩视频在线| 91亚洲成人| 欧美aⅴ一区二区三区视频| 日本强好片久久久久久aaa| 高清不卡亚洲| 日韩精品一区二区三区中文字幕| 久久久水蜜桃av免费网站| 精品一区视频| 久久成人一区| 国产免费av国片精品草莓男男| 亚洲欧美日本视频在线观看| 欧美成人综合| 蜜乳av另类精品一区二区| 亚洲最新无码中文字幕久久| 免费日韩一区二区三区| 国产一级成人av| 日韩精品欧美成人高清一区二区| 日韩av中文在线观看| 里番精品3d一二三区| 精品日韩视频| 亚洲成人一区| 日韩中文字幕| 久久69成人| 亚洲福利精品| 久久精品色播| 久久精品国产久精国产| 婷婷丁香综合| 福利一区二区三区视频在线观看| 欧美日韩午夜电影网| 国产精品手机在线播放| 欧美日中文字幕| 亚洲美女久久精品| 91一区二区三区四区| 国产精品中文字幕亚洲欧美| 国产91久久精品一区二区| 国产精品va| 美国欧美日韩国产在线播放| 激情综合五月| 7777精品| 清纯唯美亚洲综合一区| 午夜日韩福利| 色在线中文字幕| 久久影院一区| 国产日韩中文在线中文字幕| 亚洲精选久久| 久久精品97| 鲁大师精品99久久久| 国产三级精品三级在线观看国产| 91成人福利| 日本精品另类| 国产伦理久久久久久妇女| 国产精选一区| 日韩在线欧美| 激情综合网站| 日韩精品一二三四| 蜜桃av一区| 麻豆91精品视频| 精品视频一区二区三区四区五区| 亚洲精品免费观看| 五月亚洲婷婷| 国产乱子精品一区二区在线观看 | 视频一区二区国产| 亚洲二区视频| 日韩专区在线视频| 亚洲一区二区三区四区五区午夜 | 精品亚洲免a| 久久久91麻豆精品国产一区| 亚洲一区二区成人| 久久中文视频| 亚洲成人日韩| 亚洲男女av一区二区| 国产99亚洲| 午夜欧美视频| 亚洲精品乱码| 91精品啪在线观看国产爱臀| 深夜福利亚洲| 国产精品日韩精品中文字幕| 国产精品亚洲片在线播放| 国产精品一级| 亚洲欧洲美洲av| 日韩1区2区| 亚洲天堂成人| 日韩二区三区四区| 精品国产一区二区三区av片| 国产一区二区三区久久久久久久久| 精品久久一区| 国产在线欧美| 在线日韩成人| 国产精品毛片视频| 天堂资源在线亚洲| 蜜臀久久99精品久久久画质超高清| 日韩一区二区三区在线看| 麻豆精品蜜桃视频网站| 久久精品99久久无色码中文字幕| 蜜桃av一区二区三区电影| 国产日韩欧美三级| 久久激情婷婷| 欧美激情麻豆| 亚洲三级毛片| 亚洲一级网站| jizzjizz中国精品麻豆| 日韩福利视频导航| 好吊日精品视频| 激情国产在线| 欧美日韩一区二区三区四区在线观看| 97精品久久| 99香蕉国产精品偷在线观看 | 国产综合婷婷| 国产激情欧美| 视频在线观看91| 日韩精品视频网站| 伊人久久大香线蕉av不卡| 亚洲高清二区| 高清一区二区| 日韩av不卡在线观看| 视频一区中文字幕| 麻豆视频在线看| 日韩国产欧美在线播放| 日韩精品午夜| 欧美激情网址| 国产精品xxx在线观看| 不卡在线一区二区| 福利视频一区| 亚洲不卡视频| 亚洲影视一区二区三区| 99精品视频在线| 九九99久久精品在免费线bt| 日本亚洲欧美天堂免费| 群体交乱之放荡娇妻一区二区| 精品中文字幕一区二区三区| 综合日韩在线| 午夜视频精品| 91精品久久久久久久久久不卡| 欧美日韩精品一区二区三区视频 | 久久国产亚洲精品| 精品黄色一级片| 亚洲天堂日韩在线| 激情欧美一区二区三区| 精品入口麻豆88视频| 精品在线网站观看| 日本色综合中文字幕| 色综合www| 亚洲国产欧美日本视频| 久久精品网址| 国产伦乱精品| 日本强好片久久久久久aaa| 亚洲深夜福利在线观看| 国产欧美日韩一区二区三区在线| 亚洲视频电影在线| 亚洲区国产区| 日韩精品一区二区三区免费视频 | 亚洲一区二区三区四区五区午夜 | 日本亚洲欧洲无免费码在线| 深夜日韩欧美| 日韩精品中文字幕吗一区二区| 国产欧美91| 久久精品色播| 欧美aa在线观看| 亚洲色诱最新| 日韩精品一级中文字幕精品视频免费观看 | 国产精品yjizz视频网| 国内精品亚洲| 亚洲电影有码| 三级在线观看一区二区| 精品美女视频 | 亚洲字幕久久| 国产精品一区二区中文字幕| 亚洲婷婷免费| 亚洲另类视频| 动漫av一区| 国产成人免费| 成人国产精品久久| 国产精品第一| www在线观看黄色| 午夜一级久久| 国产精品一区二区av交换| 99精品网站| 91精品国产一区二区在线观看 | 国产色播av在线| 一区二区三区网站| 国产精品成人a在线观看| 91精品丝袜国产高跟在线| 免费在线小视频| 日韩激情视频网站| 欧美激情视频一区二区三区免费| 亚洲网站视频| 四季av一区二区凹凸精品| 视频一区在线播放| 久久久水蜜桃av免费网站| 国产亚洲第一伦理第一区| 91久久久精品国产| 亚洲精品成人| 日韩精品欧美激情一区二区| 国产精品综合|