当前位置: 首页 > wzjs >正文

深圳自适应网站开发公司域名购买平台

深圳自适应网站开发公司,域名购买平台,餐饮网站开发性能需求,wordpress给后台增加功能1. 全局路由拦截(最推荐)原理:利用小程序页面栈和路由跳转机制进行统一拦截 实现步骤:// app.js 中定义全局路由守卫 App({onLaunch() {// 存储原始路由方法const originalNavigateTo wx.navigateTo;wx.navigateTo function(opt…

1. 全局路由拦截(最推荐)

原理:利用小程序页面栈和路由跳转机制进行统一拦截
实现步骤

// app.js 中定义全局路由守卫
App({onLaunch() {// 存储原始路由方法const originalNavigateTo = wx.navigateTo;wx.navigateTo = function(options) {if (needAuth(options.url) && !isLogin()) {return redirectToLogin(); // 跳转到登录页}originalNavigateTo.call(this, options);};// 对 wx.redirectTo/wx.switchTab 等做同样处理}
})// 检查页面是否需要登录
function needAuth(url) {const authPages = ['/pages/order/order', '/pages/profile/profile'];return authPages.some(page => url.includes(page));
}

2. 页面跳转前检查(组件化方案)

原理:封装自定义导航组件
实现代码

// components/auth-navigate/auth-navigate.js
Component({methods: {handleNavigate() {if (this.data.requireAuth && !getApp().globalData.isLogin) {wx.navigateTo({ url: '/pages/login/login' });} else {wx.navigateTo({ url: this.data.target });}}}
})// 页面中使用
<auth-navigate target="/pages/order/order" require-authbindtap="handleNavigate"
>去订单页</auth-navigate>

3. 页面生命周期拦截

原理:在页面的onLoadonShow中检查
实现代码

// pages/order/order.js
Page({onShow() {if (!getApp().globalData.isLogin) {wx.redirectTo({ url: '/pages/login/login' });return;}// 正常逻辑...}
})

4. 后端接口拦截(补充方案)

原理:通过接口返回状态码强制跳转
实现逻辑

// 封装请求方法
function request(url, data) {return new Promise((resolve, reject) => {wx.request({url,success(res) {if (res.data.code === 401) { // 未登录状态码redirectToLogin();reject('未登录');} else {resolve(res.data);}}});});
}

5. 本地存储检查(简单方案)

原理:利用wx.getStorageSync快速验证
实现代码

function checkAuth() {try {const token = wx.getStorageSync('token');if (!token) throw new Error();} catch {wx.showModal({title: '提示',content: '请先登录',success() { wx.reLaunch({ url: '/pages/login/login' }) }});return false;}return true;
}

方案对比

方法优点缺点适用场景
全局路由拦截一劳永逸,维护成本低需要处理特殊页面(如tabBar)中大型应用
自定义导航组件组件化,可复用性强每个链接需替换为组件需要精细控制的场景
页面生命周期检查实现简单每个页面需单独添加代码少量需要拦截的页面
后端接口拦截权限控制绝对可靠用户感知延迟对安全性要求高的功能
本地存储检查快速实现无法防止直接URL访问简单小程序

最佳实践建议

  1. 组合使用

    • 核心方案:全局路由拦截 + 页面生命周期检查

    • 增强方案:关键接口401拦截

  2. 用户体验优化

    // 登录成功后返回原页面
    wx.redirectTo({url: '/pages/login/login?redirect=' + encodeURIComponent(currentPage)
    });

  3. 特殊页面处理

    // 在app.js中排除登录页
    if (options.url.includes('login')) {return originalNavigateTo.call(this, options);
    }

4.TabBar页面处理

 

// 由于switchTab不能带参数,需使用全局变量
getApp().globalData.requireLogin = true;
wx.switchTab({ url: '/pages/profile/profile' });

注意事项

  1. 小程序页面路径最多支持10层,避免循环跳转

  2. tabBar页面无法通过navigateTo跳转,需特殊处理

  3. onLaunch中无法获取页面栈,建议用getCurrentPages()做运行时检查

根据项目复杂度选择方案,一般推荐方案1+3的组合实现。

http://www.dtcms.com/wzjs/210162.html

相关文章:

  • 买卖域名的网站网络推广工作好干吗
  • 怎么设置批发网站怎么做网络推广的方法和技巧
  • 鄞州区网站建设网页制作在线生成
  • 做童装在哪个网站做广告优化网站标题
  • web前端就业前景推广关键词优化公司
  • 代做淘宝客网站线上销售平台有哪些
  • 潍坊集团网站建设短视频关键词seo优化
  • 网站开发未按合同约定开发时间完工线上广告推广
  • 网站没有备案怎么做支付友情链接方面
  • 纵横天下网站开发国外推广网站有什么
  • 大陆怎么做香港网站手机百度安装下载
  • 软件开发需要多久灰色词seo推广
  • wordpress注册邮件接收不到seo兼职工资一般多少
  • 网站建设需要注意的优秀的营销策划案例
  • 宁波网站建设详细方案模板网络营销的手段有哪些
  • 做网站页面文件网络宣传推广方案
  • 网站建设费的税率百度关键词价格查询
  • 济南网站制作0531soso百度关键词规划师工具
  • 网站制作明细清单做一个网站
  • seo快速提高网站转化率百度学术官网论文查重免费
  • 邢台学校网站建设免费网页设计制作网站
  • 研究政府门户网站建设的作用百度搜索风云榜游戏
  • 做网站百灵鸟网上引流推广怎么做
  • 行业类门户网站建设方案百度推广非企代理
  • 郑州公司网站建设服务搜索引擎分析论文
  • 重庆自助企业建站模板保定网站seo
  • wordpress主题加速重庆seo建站
  • 怎样给公司产品做网站百度推广登录入口
  • 邯郸建设网站seo具体是什么
  • 昆明公司网站网络营销的平台有哪些