app.js,写在app.js可以同时解决小程序相对路径问题,路径是从根目录开始的。

/**
  * @url  跳转地址   根目录 pages  
  */
App({
    data:{
        max_page: 5
    },
    openPage: function(url) {
        if(!url) return;
        url = `pages/${url}`;
        var pages = getCurrentPages(),  //页面栈
            len = pages.length,
            dlt = '',
            max_page = this.data.max_page,// 页面最大限制
            target = '/' + url.replace(/^\//, '');


        for (var i = 0; i < len; i++) {
          if (pages[i].route == target) { 
            dlt = i + 1;
            break;
          }
        } 

        //页面不在栈中
        if (!dlt) { 
          if (len < max_page) {
            wx.navigateTo({
              url: target
            });
          } else {
            wx.redirectTo({
              url: target
            });
          }
        } else {
          wx.navigateBack({
            delta: len - dlt
          });
        }   
    }
})  

如果有需要可以增加一个组件