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

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

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

瀏覽:33日期: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://m.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://m.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://m.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://m.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://m.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://m.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://m.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://m.b3g6.com/node_modules/axios/dist/axios.js'></script><script src='http://m.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久久,三上悠亚国产精品一区二区三区
少妇精品导航| 六月婷婷一区| 欧美一区网站| 综合激情在线| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲美洲欧洲综合国产一区| 1000部精品久久久久久久久| 日本激情一区| 国产精品一区免费在线| 日本亚洲欧美天堂免费| 日韩综合精品| 久久久久.com| 激情自拍一区| 成人久久久久| 国产日韩在线观看视频| 久久国内精品自在自线400部| 日韩毛片视频| 亚洲精品88| 色网在线免费观看| 久久精品在线| 免费人成在线不卡| 欧美自拍一区| 精品国产欧美| 色88888久久久久久影院| 欧美日韩一区二区综合| 黄色亚洲免费| 日韩高清在线不卡| 精品视频在线观看网站| 麻豆精品蜜桃| 激情久久五月| 亚洲精选久久| 国产视频一区二区在线播放| 亚洲精品欧美| 国产精品亚洲四区在线观看| 国产精品久久久久久久久免费高清| 国产精品日本一区二区三区在线| 国产精品1区在线| 日韩久久一区| 日韩精品一区二区三区av| 综合国产在线| 国产欧美日韩在线一区二区| 成人免费电影网址| 久久都是精品| 欧美日韩一区二区三区四区在线观看 | 日韩精品中文字幕吗一区二区 | 中文一区二区| 欧美精选一区二区三区| 亚洲韩日在线| 亚洲欧美网站| 日韩影院免费视频| 蜜臀av国产精品久久久久| 夜夜嗨一区二区| 视频一区免费在线观看| 日韩在线成人| 国产福利91精品一区二区| 日韩在线视频精品| 91综合网人人| 青青青免费在线视频| 欧美男人天堂| 国精品一区二区三区| 精品在线播放| 日本中文字幕一区二区| 久久99偷拍| 日韩在线精品| 在线一区视频| 国产精品综合| 国产不卡人人| 爽好多水快深点欧美视频| 久久精品97| 欧美激情国产在线| 亚洲国产一区二区三区在线播放| 国产亚洲字幕| 激情欧美一区二区三区| 亚洲一级淫片| 美女视频网站久久| 秋霞国产精品| 最新国产精品视频| 久久久亚洲欧洲日产| 久久婷婷一区| 每日更新成人在线视频| 国产精品a久久久久| 日本欧美不卡| 日韩高清二区| 久久久久.com| 欧美日韩 国产精品| 伊人网在线播放| 亚洲资源在线| 国产夫妻在线| 伊人久久大香伊蕉在人线观看热v| 欧美天堂视频| 欧洲毛片在线视频免费观看| 日韩有码av| 久久精品亚洲人成影院| 日韩国产精品久久久久久亚洲| 99香蕉国产精品偷在线观看 | 国产一区二区三区亚洲综合| 亚洲一级二级| 国产精品videossex| 黄色亚洲在线| 欧美激情aⅴ一区二区三区 | 欧美日韩精品一区二区三区视频 | 麻豆视频一区| 日本免费一区二区三区四区| 六月婷婷一区| 在线视频观看日韩| 欧美一级网站| 最新亚洲一区| 久久久久免费| 国产欧美三级| 在线一区二区三区视频| 欧美精品日日操| 日韩精品免费视频一区二区三区| 亚洲精品大片| 久久香蕉国产| 国产一区二区三区亚洲综合| 婷婷成人av| 香蕉成人久久| 色网在线免费观看| 国产激情综合| 亚洲精品黄色| 亚洲激情精品| 欧美午夜精彩| 国产精品主播| 米奇777超碰欧美日韩亚洲| 欧美日韩一区二区三区四区在线观看| 蜜臀av一区二区三区| 精品国产中文字幕第一页| 亚洲色图综合| 国产农村妇女精品一区二区| 国产欧美一区二区三区精品酒店| 三上悠亚国产精品一区二区三区| 日韩欧美二区| 国产精品麻豆成人av电影艾秋| 久久精品国产精品亚洲毛片| 国产真实久久| 首页国产精品| 久久久久伊人| 国产精品白丝一区二区三区| 四虎在线精品| 国产精品原创| 日韩专区欧美专区| 久久中文字幕一区二区三区| 国产精品88久久久久久| 麻豆视频一区| 久久国产精品毛片| 亚洲激情中文在线| 国产日韩欧美| 亚洲深夜影院| 亚洲高清影视| 樱桃视频成人在线观看| 麻豆91小视频| 国产美女亚洲精品7777| 久久午夜视频| 99视频精品| 9久re热视频在线精品| 高清在线一区| 国产一区二区三区黄网站| 国产高清亚洲| 你懂的亚洲视频| 国产精品v一区二区三区| 国产精品任我爽爆在线播放 | 亚洲日产av中文字幕| 欧美天堂亚洲电影院在线观看| 日韩一区二区三免费高清在线观看 | 精品久久久网| 国产日本久久| 国产精品色在线网站| 欧美天堂一区| 久久gogo国模啪啪裸体| 久久精品国产成人一区二区三区| 欧美日韩少妇| 偷拍欧美精品| 丝袜美腿亚洲一区| 日本亚洲视频在线| 国产亚洲精品美女久久| 中文字幕在线视频久| 高清av不卡| 亚洲午夜在线| 亚洲天堂免费| 国产欧美日韩精品高清二区综合区 | 免费日韩精品中文字幕视频在线| 国产日产精品_国产精品毛片 | 婷婷综合亚洲| 欧洲精品一区二区三区| 免费精品国产| 日韩亚洲国产欧美| 亚洲专区视频| 欧美激情综合| 国产精品99精品一区二区三区∴| 1024精品一区二区三区| 亚洲精品极品少妇16p| 免费国产亚洲视频| 青青草伊人久久| 日韩av有码| 好看不卡的中文字幕| 日韩三级一区| 日本一区二区免费高清| 欧美日韩精品一本二本三本 | 亚洲精品美女| 国产伦一区二区三区|