当前位置:首页 > uni-app

uniapp全局校验

2026-03-04 21:52:34uni-app

uniapp全局校验的实现方法

在uniapp中实现全局校验通常涉及表单验证、权限校验或请求拦截等方面。以下是几种常见的全局校验方法:

表单全局验证

使用uni-forms组件结合自定义校验规则:

uniapp全局校验

// 在main.js中设置全局规则
import uniForms from '@/components/uni-forms/uni-forms.vue'
Vue.component('uni-forms', uniForms)

Vue.prototype.$rules = {
  required: (value, callback) => {
    if (!value) {
      callback(new Error('必填项'))
    } else {
      callback()
    }
  },
  mobile: (value, callback) => {
    if (!/^1[3-9]\d{9}$/.test(value)) {
      callback(new Error('手机号格式错误'))
    } else {
      callback()
    }
  }
}

请求拦截校验

uni.request前进行统一校验:

uniapp全局校验

// 在main.js中封装请求
const request = (options) => {
  // 添加token校验
  if (!store.state.token && !options.noAuth) {
    uni.showToast({ title: '请先登录', icon: 'none' })
    return Promise.reject()
  }

  return uni.request(options)
}

Vue.prototype.$http = request

路由权限校验

通过拦截uni.navigateTo实现:

// 在main.js中重写导航方法
const originalNavigateTo = uni.navigateTo
uni.navigateTo = function(options) {
  if (options.url.includes('/member/') && !store.state.token) {
    uni.showToast({ title: '请先登录', icon: 'none' })
    return uni.redirectTo({ url: '/pages/login/login' })
  }
  originalNavigateTo.call(uni, options)
}

自定义指令全局校验

创建全局校验指令:

// 在main.js中注册指令
Vue.directive('auth', {
  inserted(el, binding) {
    if (!store.state.token) {
      el.style.display = 'none'
    }
  }
})

全局校验的注意事项

  1. 校验逻辑应尽量放在前端轻量级验证,重要校验仍需后端配合
  2. 对于复杂业务场景,建议使用专门的验证库如vee-validate
  3. 移动端校验需要优化错误提示方式,避免频繁弹窗影响体验
  4. 权限校验需要考虑游客模式和登录模式的不同场景

以上方法可以根据实际项目需求组合使用,构建完整的全局校验体系。对于大型项目,建议将校验逻辑模块化,方便维护和扩展。

标签: 全局uniapp
分享给朋友:

相关文章

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp如何赋值

uniapp如何赋值

uniapp 赋值方法 在 uniapp 中,赋值操作可以通过多种方式实现,具体取决于数据类型和场景。 数据绑定赋值 在模板中使用 {{}} 进行数据绑定,通过修改 data 中的值实现动态更新。…

uniapp改变checkbox选中状态

uniapp改变checkbox选中状态

修改 checkbox 选中状态的方法 在 uniapp 中修改 checkbox 的选中状态可以通过以下几种方式实现: 绑定 v-model 控制状态 通过数据绑定方式控制 checkbox 的…

uniapp隐藏右侧滚动条

uniapp隐藏右侧滚动条

隐藏右侧滚动条的方法 在UniApp中隐藏右侧滚动条可以通过CSS样式实现,适用于H5、小程序等平台。以下是几种常见的方法: 全局样式设置 在App.vue的全局样式中添加以下CSS代码,适用于所有…

uniapp 录像

uniapp 录像

uniapp 录像功能实现 在uniapp中实现录像功能可以通过调用uni-app的API或结合第三方插件完成。以下是常见的实现方法: 使用uni.chooseVideo方法 uni.choose…

介绍uniapp

介绍uniapp

Uniapp 概述 Uniapp 是一款基于 Vue.js 的跨平台开发框架,允许开发者使用一套代码同时生成 iOS、Android、Web 以及小程序应用。其核心优势在于高效开发和代码复用,大幅降低…