色偷偷超碰_亚洲成肉网_日日干夜夜撸_黄色一级片子_男人午夜视频_久久精品99久久久久久

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ā)自定義事件 

三:源碼獲取


一:效果展示 

  • 未搜索用戶頁面

  •  查詢后加載中頁面

  •  查詢成功渲染頁面

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

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


二:代碼分析

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

2.1 綁定自定義事件 

綁定自定義事件在List組件中,data中的數(shù)據(jù)是定義了userinfo對(duì)象來存放其四個(gè)狀態(tài)的布爾值,后續(xù)的數(shù)據(jù)傳遞是直接傳遞userinfo這個(gè)對(duì)象,使用 $on 綁定自定義事件 getuserinfo,當(dāng)這個(gè)事件觸發(fā)時(shí)執(zhí)行后面的箭頭回調(diào)函數(shù),將傳遞來的對(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組件收到了傳來的用戶數(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的背景頁面,其余同理

 
  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ā)自定義事件 

三:源碼獲取


一:效果展示 

  • 未搜索用戶頁面

  •  查詢后加載中頁面

  •  查詢成功渲染頁面

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

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


二:代碼分析

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

2.1 綁定自定義事件 

綁定自定義事件在List組件中,data中的數(shù)據(jù)是定義了userinfo對(duì)象來存放其四個(gè)狀態(tài)的布爾值,后續(xù)的數(shù)據(jù)傳遞是直接傳遞userinfo這個(gè)對(duì)象,使用 $on 綁定自定義事件 getuserinfo,當(dāng)這個(gè)事件觸發(fā)時(shí)執(zhí)行后面的箭頭回調(diào)函數(shù),將傳遞來的對(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組件收到了傳來的用戶數(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的背景頁面,其余同理

 
  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>
來源: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)問題,請(qǐng)及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。  藍(lán)藍(lán)設(shè)計(jì)www.ywne.cn )是一家專注而深入的界面設(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è)人資料

存檔

主站蜘蛛池模板: 免费av看片 | 来射吧 | 久久免费高清 | 国产永久免费观看 | 久久九九久久九九 | 国产精品久久久久久久久 | 久久1024| 黄色av一区| 国产免费一级 | 亚洲69av | 欧美 日韩 视频 | 亚洲国产精品久久久 | 欧美成人短视频 | 久久久久久久97 | 国内自拍真实伦在线观看 | 波多野结衣一级 | 国产91在线高潮白浆在线观看 | 在线观看免费黄色小视频 | 国产成人精品片 | 欧洲一区二区在线 | 亚洲一区二区免费看 | 香蕉视频在线看 | 中文字幕第十一页 | 日韩女优中文字幕 | 久久久www成人免费精品 | 亚洲色图欧洲色图 | 色播亚洲| 亚州av一区 | 久久影业| 日韩欧美中文字幕在线视频 | 免费av网址在线观看 | 日本成人一级片 | 在线天堂v | 久久99久久99精品免视看婷婷 | 黑人巨大国产9丨视频 | aaa免费在线观看 | 亚洲一级精品 | 国产视频一区二区在线 | av2014天堂| 青青草免费在线视频观看 | 日本午夜精品 |