首頁 > web前端 > uni-app > 主體

uniapp登入跳頁

WBOY
發布: 2023-05-25 21:08:35
原創
590 人瀏覽過

隨著行動端應用的發展,許多開發者選擇使用uniapp來進行應用程式的開發,uniapp的一大特點是支援跨平台,在提升開發效率的同時,也使得應用程式的運作和維護更加簡單和便捷。在uniapp應用程式中,登入跳頁是常見的功能,以下我們就來探討如何實現uniapp登入跳轉頁面的具體步驟。

  1. 先建立一個登入頁面,可以使用uniapp提供的模板,也可以自行寫程式碼來實作。
  2. 在登入頁面中,需要引入uniapp官方提供的登入元件,其程式碼如下:
<template>
  <view>
    <form>
      <input type="text" v-model="account" placeholder="请输入账号"/>
      <input type="password" v-model="password" placeholder="请输入密码"/>
      <button type="submit" @click="login">登录</button>
    </form>
  </view>
</template>

<script>
  import { login } from '@/api/user'

  export default {
    data() {
      return {
        account: '',
        password: ''
      }
    },
    methods: {
      async login() {
        // 调用登录接口,接口返回登录状态
        const res = await login({ account: this.account, password: this.password })

        // 如果登录成功,就跳转到主页
        if (res.code === 200) {
          uni.switchTab({ url: '/pages/index' })
        } else {
          uni.showToast({
            title: '登录失败',
            icon: 'none'
          })
        }
      }
    }
  }
</script>
登入後複製

在上述程式碼中,我們編寫了一個基本的登入表單,並在表單提交時調用了登入接口,如果登入成功,則跳到主頁;登入失敗,則彈出視窗提示登入失敗。

  1. 在登入介面中,我們需要進行帳號密碼的校驗,檢查使用者輸入的帳號和密碼是否正確,如果正確則傳回登入成功的狀態碼,並攜帶使用者資訊回傳;否則傳回登入失敗的狀態碼和錯誤訊息。
import request from '@/utils/request'

// 登录接口
export function login(data) {
  return request({
    url: '/login',
    method: 'post',
    data
  })
}
登入後複製

在上述程式碼中,我們使用了uniapp官方推薦的網路請求庫request來進行請求的發送,同時我們需要根據後端介面的要求來進行資料的傳輸和加密。

  1. 在主頁中,我們需要對使用者的登入狀態進行判斷,如果使用者已登錄,則顯示使用者的資訊;如果使用者未登錄,則跳到登入頁面進行登入。
<template>
  <view>
    <text v-if="isLogin">欢迎你,{{ userInfo.name }}</text>
    <view v-else>
      <text>请先登录</text>
      <button @click="gotoLogin">去登录</button>
    </view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        isLogin: false,
        userInfo: {}
      }
    },
    onLoad() {
      // 判断用户是否已登录
      this.checkLogin()
    },
    methods: {
      checkLogin() {
        // 检查本地存储中是否存在登录信息
        const loginInfo = uni.getStorageSync('loginInfo')
        if (loginInfo && loginInfo.isLogin) {
          this.isLogin = true
          this.userInfo = loginInfo.userInfo
        }
      },
      gotoLogin() {
        // 跳转到登录页面
        uni.navigateTo({ url: '/pages/login' })
      }
    }
  }
</script>
登入後複製

在上述程式碼中,我們透過checkLogin方法檢查本機儲存中是否存在登入訊息,如果存在,則將isLogin設為true,並將userInfo設為本機儲存中的使用者資訊;否則將isLogin設定為false,表示使用者未登入。如果使用者未登錄,則可以透過gotoLogin方法跳到登入頁面進行登入操作。

  1. 在登入成功後,我們需要將登入狀態和使用者資訊儲存到本機儲存中,以便下次開啟應用程式時可以自動登入。
async login() {
  // 调用登录接口,接口返回登录状态
  const res = await login({ account: this.account, password: this.password })

  // 如果登录成功,就跳转到主页
  if (res.code === 200) {
    // 保存登录状态和用户信息到本地存储中
    uni.setStorageSync('loginInfo', { isLogin: true, userInfo: res.data.userInfo })
    uni.switchTab({ url: '/pages/index' })
  } else {
    uni.showToast({
      title: '登录失败',
      icon: 'none'
    })
  }
}
登入後複製

在上述程式碼中,我們使用uniapp提供的本機儲存API來進行狀態的儲存與讀取,以e‘setStorageSync’和‘getStorageSync’為例。透過這種方式,我們可以實現uniapp登入跳轉頁面的功能,為應用程式的開發和使用者體驗提供更好的支援。

以上是uniapp登入跳頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板