• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

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

    2023-1-5    前端達人

    前言:

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

    文章目錄:

    一:效果展示 

    二:代碼分析

    2.1 綁定自定義事件 

    2.2 觸發自定義事件 

    三:源碼獲取


    一:效果展示 

    • 未搜索用戶頁面

    •  查詢后加載中頁面

    •  查詢成功渲染頁面

    • 點擊頭像或下部鏈接進入用戶主頁

    •  查詢失敗頁面報錯提示


    二:代碼分析

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

    2.1 綁定自定義事件 

    綁定自定義事件在List組件中,data中的數據是定義了userinfo對象來存放其四個狀態的布爾值,后續的數據傳遞是直接傳遞userinfo這個對象,使用 $on 綁定自定義事件 getuserinfo,當這個事件觸發時執行后面的箭頭回調函數,將傳遞來的對象接收并覆蓋掉data中原有的四個狀態布爾值。

     
    
    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組件收到了傳來的用戶數據',res);
    17. this.UserInfo=datas
    18. console.log(datas);
    19. })
    20. }
    21. }
    22. </script>

    2.2 觸發自定義事件 

    點擊搜索按鈕即可使用 $emit 觸發自定義事件,在請求成功前會將 isloading 改為true,其余改為false進行數據傳遞,傳遞給 list 組件后期就會顯示出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>




    前言:

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

    文章目錄:

    一:效果展示 

    二:代碼分析

    2.1 綁定自定義事件 

    2.2 觸發自定義事件 

    三:源碼獲取


    一:效果展示 

    • 未搜索用戶頁面

    •  查詢后加載中頁面

    •  查詢成功渲染頁面

    • 點擊頭像或下部鏈接進入用戶主頁

    •  查詢失敗頁面報錯提示


    二:代碼分析

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

    2.1 綁定自定義事件 

    綁定自定義事件在List組件中,data中的數據是定義了userinfo對象來存放其四個狀態的布爾值,后續的數據傳遞是直接傳遞userinfo這個對象,使用 $on 綁定自定義事件 getuserinfo,當這個事件觸發時執行后面的箭頭回調函數,將傳遞來的對象接收并覆蓋掉data中原有的四個狀態布爾值。

     
    
    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組件收到了傳來的用戶數據',res);
    17. this.UserInfo=datas
    18. console.log(datas);
    19. })
    20. }
    21. }
    22. </script>

    2.2 觸發自定義事件 

    點擊搜索按鈕即可使用 $emit 觸發自定義事件,在請求成功前會將 isloading 改為true,其余改為false進行數據傳遞,傳遞給 list 組件后期就會顯示出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 藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請加微信ban_lanlan,報下信息,藍小助會請您入群。歡迎您加入噢~~ 希望得到建議咨詢、商務合作,也請與我們聯系01063334945。  分享此文一切功德,皆悉回向給文章原作者及眾讀者. 免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。  藍藍設計www.lzhte.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.lzhte.cn

    存檔

    主站蜘蛛池模板: 久久久久久久久高潮无码| 少妇人妻偷人精品视蜜桃| 国产成人精品日本亚洲语音1| 精品国产线拍大陆久久尤物| 国产在线精品无码二区| 麻豆一区二区三区久久| 国产av天堂亚洲国产av麻豆| 国产日本一区二区在线| 呼玛县| 福利姬av| 国产成人人综合亚洲欧美丁香花| 精品一卡2卡三卡4卡免费网站| 香蕉国产人午夜视频在线观看| 午夜成人三级| 成人一区二区三区精品| 欧洲激情无码一区二区三区| 在线观看亚洲欧美日本| 国产精品视频视频久久| 国产亚洲人成在线影院| 国产精品无码免费专区午夜| 亚洲国产精品成人无码区| 久久人妻少妇偷人精品综合桃色| 日本一道dvd在线中文字幕| 色婷婷丁香九月激情综合视频| 日韩中文字幕一二三区| 亚洲国产99在线精品一区二区| 日韩免费高清一级毛片在线| 日韩不卡无码精品一区高清视频 | 久久亚洲精彩无码天堂| 国产午夜成人无码免费看不卡| 国内亚洲精彩视频在线| 国产欧美一区二区成人影院| 欧美性色黄大片www喷水| 91豆花视频| 午夜亚洲国产理论片4080| 亚洲人成绝费网站色www吃脚| 额济纳旗| 内射一区二区精品视频在线观看| 诸暨市| 一本一道AV无码中文字幕| 午夜成人无码福利免费视频|