微信小程序登錄組件封裝 —— 完成已登錄狀態(tài)才能繼續(xù)的操作

微信登錄組件
  • 此組件是項(xiàng)目中用到的,項(xiàng)目結(jié)束了,分享給大家,希望能對大家有所幫助
  • 這里只討論怎樣解決需要已登錄狀態(tài)才能繼續(xù)操作锦爵,具體登錄邏輯不做討論
  • 源碼已經(jīng)上傳GitHub --> zy-login-view 求Star

需要已登錄狀態(tài)才能繼續(xù)操作這個(gè)具體應(yīng)用場景我相信產(chǎn)品經(jīng)理們能夠給你一個(gè)詳情解答

這里我們具體分析一下:
  • 我們點(diǎn)擊一個(gè)視圖View(其實(shí)很少是Button,而登錄卻需要Button)進(jìn)行某項(xiàng)操作
  • --> 已登錄 --> 執(zhí)行該操作
  • --> 未登錄 --> 登錄 --> 自動繼續(xù)該操作
當(dāng)然其中登錄還有以下情況:
  • 登錄時(shí) --> 發(fā)現(xiàn)沒有注冊(很多項(xiàng)目是以綁定手機(jī)號與否認(rèn)定是否注冊喳魏,雖然有違微信小程序的快捷與方便的初衷棉浸,但是確實(shí)存在)--> 跳轉(zhuǎn)注冊頁面 --> 注冊成功 --> 返回此頁面(一般走了注冊流程的返回源頁面就行了)

本組件實(shí)現(xiàn)方式是:

  • 判斷是否登錄
  • 已登錄 --> 將原來的視圖插入本組件的<slot></slot>中 --> triggerEvent
  • 未登錄 --> 寫一個(gè)透明button覆蓋原來視圖 --> login(判斷權(quán)限怀薛,登錄刺彩,注冊,處理數(shù)據(jù)等等。创倔。嗡害。可以封裝一個(gè)login.js文件專門處理這些東西) --> 登錄成功 --> triggerEvent
js主要代碼
    // 未登錄狀態(tài)
    //獲取用戶信息
    handleUserInfo: function (e) {
      if (e.detail.errMsg ===
        "getUserInfo:ok") {
        wx.showLoading({
          title: '登錄中...',
          mask: true,
        });

        // 這里是一個(gè)登錄的相關(guān)操作的封裝畦攘,引入的外部js文件
        // login().then(() => {
        //   this.triggerEvent('onLoginSuccess', {
        //     payload: this.data.payload
        //   })
        // })

        //模擬登錄
        setTimeout(() => {
          wx.setStorageSync('isLogin', true);
          wx.hideLoading();
          this.triggerEvent('onLoginSuccess', {
            payload: this.data.payload
          })
        }, 2000) 

      } else {
        wx.showToast({
          title: "登錄失敗霸妹,請稍后重試",
          icon: 'none'
        });
      }
    },

    //已登錄狀態(tài)
    handleTap: function () {
      this.triggerEvent('onLoginSuccess', {
        payload: this.data.payload
      })
    }
wml主要代碼
<view class='container' bindtap="handleTap" wx:if="{{isLogin}}">
    <slot></slot>
</view>
<view class='container' wx:else>
    <button
            class='auth'
            open-type="getUserInfo"
            bindgetuserinfo="handleUserInfo"
    >
        授權(quán)登錄
    </button>
    <slot></slot>
</view>
  
使用方法:
  • .json文件引入
{
  "usingComponents": {
    "login-view": "../../component/login-view/login-view"
  }
}
  • .wxml使用
<login-view hasLogin='{{hasLogin}}' payload='sendInData<AnyType>' bind:onLoginSuccess="jumpToLogsPage">
   <view class='login'>已登錄狀態(tài)才能跳轉(zhuǎn)</view>
</login-view>
  • .js文件中,就當(dāng)此判斷不存在知押,比如此例中正常使用,data就是傳入登錄組件的參數(shù)叹螟,可以穿任意類型,原樣返回台盯。需要在onShow中更新登錄狀態(tài)
  onShow: function () {
    this.setData({
      hasLogin: wx.getStorageSync('isLogin')
    })
  },
 /**
  * 點(diǎn)擊事件原來需要做的操作
  * 登錄成功后自動繼續(xù)做這個(gè)操作
  */
  jumpToLogsPage: function(data) {
    console.log("data:", data)
    wx.navigateTo({
      url: '../logs/logs'
    })
  }
下面是具體實(shí)例:
  • 第一次未登錄罢绽,點(diǎn)擊登錄成功后自動跳轉(zhuǎn)(如果是新用戶,則先彈窗授權(quán))
  • 第二次點(diǎn)擊時(shí)已經(jīng)登錄了静盅,所以直接跳轉(zhuǎn)


    login-view.gif

需要完整源碼請上GitHub --> zy-login-view 獲取

賞我一個(gè)贊吧~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末良价,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒿叠,更是在濱河造成了極大的恐慌明垢,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件市咽,死亡現(xiàn)場離奇詭異痊银,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)魂务,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門曼验,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人粘姜,你說我怎么就攤上這事鬓照。” “怎么了孤紧?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵豺裆,是天一觀的道長。 經(jīng)常有香客問我号显,道長臭猜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任押蚤,我火速辦了婚禮蔑歌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘揽碘。我一直安慰自己次屠,他們只是感情好园匹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著劫灶,像睡著了一般裸违。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上本昏,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天供汛,我揣著相機(jī)與錄音,去河邊找鬼涌穆。 笑死怔昨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宿稀。 我是一名探鬼主播朱监,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼原叮!你這毒婦竟也來了赫编?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奋隶,失蹤者是張志新(化名)和其女友劉穎擂送,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唯欣,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘹吨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了境氢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟀拷。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖萍聊,靈堂內(nèi)的尸體忽然破棺而出问芬,到底是詐尸還是另有隱情,我是刑警寧澤寿桨,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布此衅,位于F島的核電站,受9級特大地震影響亭螟,放射性物質(zhì)發(fā)生泄漏挡鞍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一预烙、第九天 我趴在偏房一處隱蔽的房頂上張望墨微。 院中可真熱鬧,春花似錦扁掸、人聲如沸翘县。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼蹦。三九已至,卻和暖如春狸剃,著一層夾襖步出監(jiān)牢的瞬間掐隐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工钞馁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虑省,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓僧凰,卻偏偏與公主長得像探颈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子训措,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容