亚洲av日韩av永久无码久久,免费的视频app网站,欧美性猛交xxxx免费看,国产成人精品三级麻豆

Github 用戶查詢案例【基于Vue2全局事件總線通信】

2023-1-5    前端達(dá)人

前言:

        本次案例是一個(gè)基于 Vue2 的全局事件總線通信的仿 Github 用戶搜索模塊,使用的接口是 Github 官方提供的搜索接口: https://api.github.com/search/users?q=xxx(發(fā)送請(qǐng)求時(shí)需要將輸入的用戶名稱綁定替換掉xxx),如果對(duì)全局事件總線不太熟練的小伙伴可以看這篇文章:http://t.csdn.cn/oHEOWhttp://t.csdn.cn/oHEOW

文章目錄:

一:效果展示 

二:代碼分析

2.1 綁定自定義事件 

2.2 觸發(fā)自定義事件 

三:源碼獲取


一:效果展示 

  • 未搜索用戶頁(yè)面

  •  查詢后加載中頁(yè)面

  •  查詢成功渲染頁(yè)面

  • 點(diǎn)擊頭像或下部鏈接進(jìn)入用戶主頁(yè)

  •  查詢失敗頁(yè)面報(bào)錯(cuò)提示


二:代碼分析

代碼共分為了兩個(gè)子組件,一個(gè)是搜索組件(Search),另一個(gè)是列表組件(List),其次search組件中輸入框v-model雙向數(shù)據(jù)綁定,點(diǎn)擊搜索后開(kāi)始查詢,其中過(guò)程分為了四步:第一是未搜索的歡迎頁(yè)面背景,第二是請(qǐng)求未加載出來(lái)的loading背景,第三是渲染用戶列表,第四是請(qǐng)求失敗的報(bào)錯(cuò)提示頁(yè)面背景。

2.1 綁定自定義事件 

綁定自定義事件在List組件中,data中的數(shù)據(jù)是定義了userinfo對(duì)象來(lái)存放其四個(gè)狀態(tài)的布爾值,后續(xù)的數(shù)據(jù)傳遞是直接傳遞userinfo這個(gè)對(duì)象,使用 $on 綁定自定義事件 getuserinfo,當(dāng)這個(gè)事件觸發(fā)時(shí)執(zhí)行后面的箭頭回調(diào)函數(shù),將傳遞來(lái)的對(duì)象接收并覆蓋掉data中原有的四個(gè)狀態(tài)布爾值。

 
  1. <script>
  2. export default {
  3. name:'List',
  4. data() {
  5. return {
  6. UserInfo:{
  7. iswelcome:true,
  8. isloading:false,
  9. users:'',
  10. error:''
  11. }
  12. }
  13. },
  14. mounted(){
  15. this.$bus.$on('getUserInfo',(datas)=>{
  16. // console.log('list組件收到了傳來(lái)的用戶數(shù)據(jù)',res);
  17. this.UserInfo=datas
  18. console.log(datas);
  19. })
  20. }
  21. }
  22. </script>

2.2 觸發(fā)自定義事件 

點(diǎn)擊搜索按鈕即可使用 $emit 觸發(fā)自定義事件,在請(qǐng)求成功前會(huì)將 isloading 改為true,其余改為false進(jìn)行數(shù)據(jù)傳遞,傳遞給 list 組件后期就會(huì)顯示出loading的背景頁(yè)面,其余同理

 
  1. <script>
  2. export default {
  3. name:'Search',
  4. data(){
  5. return {
  6. ipt_value:'',
  7. }
  8. },
  9. methods:{
  10. search(){
  11. this.$bus.$emit('getUserInfo',{iswelcome:false,isloading:true,users:'',error:''})
  12. this.$axios.get(`https://api.github.com/search/users?q=${this.ipt_value}`).then(
  13. response => {
  14. this.$bus.$emit('getUserInfo',{iswelcome:false,isloading:false,users:response.data.items,error:''})
  15. },
  16. error => {
  17. console.log(error);
  18. this.$bus.$emit('getUserInfo',{iswelcome:false,isloading:false,users:'',error:error})
  19. }
  20. )
  21. this.ipt_value=''
  22. }
  23. }
  24. }
  25. </script>




前言:

        本次案例是一個(gè)基于 Vue2 的全局事件總線通信的仿 Github 用戶搜索模塊,使用的接口是 Github 官方提供的搜索接口: https://api.github.com/search/users?q=xxx(發(fā)送請(qǐng)求時(shí)需要將輸入的用戶名稱綁定替換掉xxx),如果對(duì)全局事件總線不太熟練的小伙伴可以看這篇文章:http://t.csdn.cn/oHEOWhttp://t.csdn.cn/oHEOW

文章目錄:

一:效果展示 

二:代碼分析

2.1 綁定自定義事件 

2.2 觸發(fā)自定義事件 

三:源碼獲取


一:效果展示 

  • 未搜索用戶頁(yè)面

  •  查詢后加載中頁(yè)面

  •  查詢成功渲染頁(yè)面

  • 點(diǎn)擊頭像或下部鏈接進(jìn)入用戶主頁(yè)

  •  查詢失敗頁(yè)面報(bào)錯(cuò)提示


二:代碼分析

代碼共分為了兩個(gè)子組件,一個(gè)是搜索組件(Search),另一個(gè)是列表組件(List),其次search組件中輸入框v-model雙向數(shù)據(jù)綁定,點(diǎn)擊搜索后開(kāi)始查詢,其中過(guò)程分為了四步:第一是未搜索的歡迎頁(yè)面背景,第二是請(qǐng)求未加載出來(lái)的loading背景,第三是渲染用戶列表,第四是請(qǐng)求失敗的報(bào)錯(cuò)提示頁(yè)面背景。

2.1 綁定自定義事件 

綁定自定義事件在List組件中,data中的數(shù)據(jù)是定義了userinfo對(duì)象來(lái)存放其四個(gè)狀態(tài)的布爾值,后續(xù)的數(shù)據(jù)傳遞是直接傳遞userinfo這個(gè)對(duì)象,使用 $on 綁定自定義事件 getuserinfo,當(dāng)這個(gè)事件觸發(fā)時(shí)執(zhí)行后面的箭頭回調(diào)函數(shù),將傳遞來(lái)的對(duì)象接收并覆蓋掉data中原有的四個(gè)狀態(tài)布爾值。

 
  1. <script>
  2. export default {
  3. name:'List',
  4. data() {
  5. return {
  6. UserInfo:{
  7. iswelcome:true,
  8. isloading:false,
  9. users:'',
  10. error:''
  11. }
  12. }
  13. },
  14. mounted(){
  15. this.$bus.$on('getUserInfo',(datas)=>{
  16. // console.log('list組件收到了傳來(lái)的用戶數(shù)據(jù)',res);
  17. this.UserInfo=datas
  18. console.log(datas);
  19. })
  20. }
  21. }
  22. </script>

2.2 觸發(fā)自定義事件 

點(diǎn)擊搜索按鈕即可使用 $emit 觸發(fā)自定義事件,在請(qǐng)求成功前會(huì)將 isloading 改為true,其余改為false進(jìn)行數(shù)據(jù)傳遞,傳遞給 list 組件后期就會(huì)顯示出loading的背景頁(yè)面,其余同理

 
  1. <script>
  2. export default {
  3. name:'Search',
  4. data(){
  5. return {
  6. ipt_value:'',
  7. }
  8. },
  9. methods:{
  10. search(){
  11. this.$bus.$emit('getUserInfo',{iswelcome:false,isloading:true,users:'',error:''})
  12. this.$axios.get(`https://api.github.com/search/users?q=${this.ipt_value}`).then(
  13. response => {
  14. this.$bus.$emit('getUserInfo',{iswelcome:false,isloading:false,users:response.data.items,error:''})
  15. },
  16. error => {
  17. console.log(error);
  18. this.$bus.$emit('getUserInfo',{iswelcome:false,isloading:false,users:'',error:error})
  19. }
  20. )
  21. this.ipt_value=''
  22. }
  23. }
  24. }
  25. </script>
來(lái)源:csdn 藍(lán)藍(lán)設(shè)計(jì)建立了UI設(shè)計(jì)分享群,每天會(huì)分享國(guó)內(nèi)外的一些優(yōu)秀設(shè)計(jì),如果有興趣的話,可以進(jìn)入一起成長(zhǎng)學(xué)習(xí),請(qǐng)加微信ban_lanlan,報(bào)下信息,藍(lán)小助會(huì)請(qǐng)您入群。歡迎您加入噢~~ 希望得到建議咨詢、商務(wù)合作,也請(qǐng)與我們聯(lián)系01063334945。  分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問(wèn)題,請(qǐng)及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。  藍(lán)藍(lán)設(shè)計(jì)www.chinatradebeam.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)、UI設(shè)計(jì)公司、界面設(shè)計(jì)公司、UI設(shè)計(jì)服務(wù)公司、數(shù)據(jù)可視化設(shè)計(jì)公司、UI交互設(shè)計(jì)公司、高端網(wǎng)站設(shè)計(jì)公司、UI咨詢、用戶體驗(yàn)公司、軟件界面設(shè)計(jì)公司

日歷

鏈接

個(gè)人資料

藍(lán)藍(lán)設(shè)計(jì)的小編 http://www.chinatradebeam.com

存檔

勃起大粗又硬湿又滑深又长| 精品久久久久久国产| 亚洲av中文无码乱人伦在线r▽| 色婷婷久久综合中文久久蜜桃av| 亚洲AV无码乱码在线观看,不卡| 日韩人妻一区二区三区蜜桃视频 | 老熟妇高潮一区二区三区| 国产精品久久久久AAAA| 亚洲av鲁丝一区二区三区| 国产精品永久免费| 蜜臀AV无码精品人妻色欲| 日本人妻伦在线中文字幕| 被群cao的合不拢腿h纯肉视频| 国产精品毛片大码女人| 被多个强壮的黑人灌满浆| 亚洲国产成人久久精品大牛影视 | 人妻熟人中文字幕一区二区| 播放男人添女人下边视频| 亚洲精品乱码久久久久久蜜桃| 年轻教师6电影完整版| 亚洲AV无码不卡| 无码88AⅤ欧美熟妇人妻影院| 国精产品一区一区三区有限在线| 真人性做爰直播| 欧美成人在线视频| 性一交一乱一乱一视频| 适合女士自慰时看的黄文| 免费在线黄色电影| 亚洲精品欧美二区三区中文字幕| 国产精品无码无片在线观看3d| 天天躁日日躁aaaaxxxx| 日本少妇裸体做爰高潮片| 一女多夫好涨四根高h| 亚洲AV无码一区二区乱孑伦AS| 日韩精品无码熟人妻视频| 久久久久久久久毛片精品| 国产毛片久久久久久国产毛片| 亚洲av日韩av永久无码久久| a片在线播放| av在线观看网址| 精品国产乱码久久久久久1区2区 |