美文网首页
轻校通开发规范文档

轻校通开发规范文档

作者: ltz就是我 | 来源:发表于2020-05-27 09:46 被阅读0次

    目录结构概况

    目录结构.png
    • images 图片文件夹,图片压缩上线到cdn,统一采用cdn线上路径,更换路径后删除本地图片,由localImageRoot替换为imageRoot。

    wxml规范

    • wxml标签可以单独出现的情况,尽量单独出现,如<input />。
    • 删除无效无用的标签属性。
    <input type="text"/>
    
    • 控制每行HTML的代码数量在50个字符以内,方便阅读浏览,多余的代码进行换行处理,标签所带属性每个属性间进行换行。
    <clock-item
        clock="{{item}}"
        bind:delClock="delClock"
        bind:expandAccessment="expandAccessment"
        bind:fingureUp="fingureUp"
        cindex="{{index}}"
        tid="{{tid}}"
        cid="{{item.class_id}}"
        bind:expandLikes="expandLikes"
        bind:expandContent="expandContent"
        type="{{0}}"
        othertype="{{1}}"
        headerclick="{{true}}"
        data-bigindex="{{bigindex}}" 
        data-index="{{index}}"
    >
    </clock-item>
    
    • 尽可能不要使用内联样式

    css规范

    • 在开发过程中rpx和px均可能用到,如通常情况下间距使用rpx,字体大小和边框等使用px,开发者根据实际情况而定
    • 强烈推荐采用flex进行布局,禁止使用float以及vertical-align。
    • 尽可能不要给元素定宽定高,考虑元素增删。
    • 注释:成组的wxss规则之间用块状注释。勿在代码后面直接注释。
    /* 单个按钮 悬浮页面底部 */
    .form-fixbtn{
      width: 365rpx;
      height: 80rpx;
    }
    

    js规范

    • 命名:变量名以及函数名统一采用驼峰命名法。
    • 回调函数统一使用Promise函数的方式进行编写,回调成功的参数统一为res,错误参数为err。
    // promise 处理回调
    let back = new Promise((resolve, reject) => {
      if (/* 异步操作成功 */){
        resolve(value);
      } else {
        reject(error);
      }
    });
    
    back.then((res) => {
        console.log('成功回调!', res);
    }).catch((err) => {
        console.log('失败回调!', error);
    });
    
    • 私有函数以及回调函数统一放置在生命周期函数后。
    • 删除js文件中未用到的生命周期函数,保持代码的整洁。
    • 所有涉及到数据绑定的变量均需在data中初始化。禁止在不定义的情况下直接setData。
    • 点击事件函数命名方式推荐为 on + 事件名 或者业务名。
    • JS语句需以分号结束。

    组件规范

    • 命名:推荐以 “c-”为开头,若组件名称为多个单词名拼接而成,采用 ' - ' 连接。
    <c-clock/>
    <!--或-->
    <c-clock-item/>
    

    配置及主要文件说明

    app.js 小程序主入口文件

    1. onShow(){ } 页面来源判断 + 设置小程序分享等链路
      • business/pages/loginregistermgt/login(公众号登录)-> this.canEnterSystem(path)
      • 不是wechatinfoget/index(非授权页面)且 页面不包含business/(非b端页面)
      • 非ucenter/index -> this.canEnterSystem(path)
    2. canEnterSystem(path){ }
      • if(!visitor || !visitor.id || !visitor.token || visitor.version != constants.storageVersion) ->'/wechatinfoget/index'
      • if ((path.indexOf('business/') != -1 && path != 'business/pages/loginregistermgt/login' && path != 'business/pages/loginregistermgt/register') || path == 'ucenter/index') -> (个人中心B端business文件夹下所有的页面只要有缓存丢失 跳转到ucenter/index)
    3. setGlobalData (isOnLunch, params){} 设置小程序分享等链路

    app.json 小程序主入口json配置文件

    分包预加载 注:新增页面时注意新增位置,必要情况才新增文件夹
    1. pages 页面路径列表,主包
      • 因为分包处理了,这里只有 "ucenter/index"
    2. subpackages 分包结构配置,每个分包的配置如下
    字段 类型 说明
    root String 分包根目录
    name String 分包别名,分包预下载时可以使用
    pages StringArray 分包页面路径,相对与分包根目录
    independent Boolean 分包是否是独立分包
    1. preloadRule 分包预下载规则
      • 同一个分包中的页面享有共同的预下载大小限额2M,会在工具打包时校验。
      • key 是页面路径, value 是进入此页面的预下载配置,每个配置如下:
    字段 类型 必填 默认 说明
    packages StringArray 进入页面后预下载分包的 root 或 name。APP 表示主包。
    network String WiFi 在指定网络下预下载,可选值为:all: 不限网络 wifi: 仅wifi下预下载
    1. tabBar 轻校通因为需求(b/c端tab不统一) 需要全自定义,所以不需要

    constants 文件夹

    1. activityconfig.js 活动校区配置

      • dailysignSchool 打卡生成日签 sid=[825]
    2. api.js 所有接口api放置文件

    3. blacklist.js 违规检查

    4. constants.js

    5. message.js 商家岛接口返回code提示文字

    6. parameter.js 页面路径埋点

    7. regexp.js 正则验证规则

    filter 文件夹

    1. index.wxs

    service文件夹 (接口请求函数方法,在需要相应接口的页面 import)

    import {
      circleEditor
    } from '../../../service/business/circleeditor.js';
    

    说明:导入utilities/request.js文件以及constants/api.js,务必export每个调用方法,例如

    import {
        wxRequest
    } from '../../utilities/request.js';
    import apis from '../../constants/api.js';
    function circleEditor (data) {
        let url = data.id == 0 ? apis.business.circleEditor.circleCreate : apis.business.circleEditor.circleUpdate; 
        if (data.id == 0) {
            delete data.id;
        }
        return wxRequest({
            role: '2b', //b端请求必填 role:'2b' 字段
            url,//api地址
            data,//请求携带参数
            method: 'POST',//请求方法
            errorresolve: 1, //在返回code不为200的时候:1.自动弹窗 2.自定义处理
            needToken: true,//是否需要token
        })
    }
    export {
        circleEditor
    }
    

    utilities 文件夹

    1. generatePoster.js 生成海报
    2. index.js 通用方法,包括LocalStorage、登录授权检测、图片视频格式转换、日期格式转换、下载文件、文本复制等
    3. request.js ajax请求通用函数
    4. screenshot.js 图片裁剪工具
    5. wxApi.js 调用微信方法
    6. wxchart-min.js 图表插件

    相关文章

      网友评论

          本文标题:轻校通开发规范文档

          本文链接:https://www.haomeiwen.com/subject/khlsictx.html