列表

z-index叠层规范

  • lever1:普通content:1-99;
  • lever2:header、footer、广告、页面tips等在内容之上,但又与内容相关性较大的;层:100-199;
  • lever3:返回顶部等页面工具类:200-299;
  • lever4:popup、picker等浮在页面上的操作层:300-399;
  • lever5:loading:400-499;
  • lever6: toast等直接遮罩在页面上的warning、error信息:500-599。

基础布局

结构

  • .page

    • header
    • footer
    • content

规范

每个页面仅允许一组基础布局,这为组件加载、交互、分层提供挂载、容器等基础。

原因

如果出现多套,将会影响公共组件引入的准确性和灵活性;也会影响功能的扩展等。

示例:totop组件

从引入组件的角度上看,作为一个基础浮动的工具组件,不应该关注实际业务及根插销,直接动态加载到基础布局当中即可。如果有多个嵌套的基础布局,将需要更多的代码,来辨别其插入点,也会失去灵活性,所以从组件的角度,唯一布局很重要。

从功能角度上看,它需要监控页面的滚动位置,在这种布局下,其需要监控content的位置情况,如果出现多个基础布局,将影响功能的使用。

组件的相关规范

加载方式

a、业务组件:可根据业务需求选择相应加载方式;

b、基础组件:尽量使用动态加载的方式,如popup、pick、loading这些浮层组件。其优势如下:

  • 可以对使用者(开发人员)屏蔽加载点;
  • 防止叠层错乱(业务组件引入基础浮层组件,如果非动态加载,浮层将于内容层交错,导致样式叠层错乱,要做额外的hack等);
  • 有利于单页跳转时,组件的统一清除。

数据流

  • a、基础组件:使用props加载数据,不关注业务;
  • b、业务组件:抽象业务组件的业务范围,抽象数据结构,从vuex中进行取值,加强vuex数据的复用及组件的复用。

如何区分业务组件和基础组件:以地址picker为例。其首先是基础的picker组件,可实现多列滚动,每次滚动都会产生一个唯一的结果数组,确认以后,返回该结果数组。该基础picker组件可以扩展成动态请求数据的地址picker,也可以是固定值的多级picker,到底需要哪种,就与业务相关。因此,地址picker,是对基础组件picker的扩展,其包含数据流的存取过程,及数据流的交互,异步请求等。

组件升级

  • 接口:对于公共组件,多人的调用的业务组件,需要做到旧接口的兼容。
  • 兼容方式:提供一个新旧接口交替期,在该时期,新旧接口并存,开发者将组件往新的接口上迁移,迁移完成之后,组件设计者,再将旧接口移除。

叠层的定义
公共组件,可以根据给出的z-index规范,给出组件的z-index叠层id;但其取值尽量在该组件类型叠层规范数值范围的中间值,便于同类型业务组件的向下向上叠层处理。

vue 项目其他规范的更多相关文章

  1. 团队开发前端VUE项目代码规范

    团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658   一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...

  2. 【转载】Vue项目中的文件/文件夹命名规范

    文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小写字母开头的(kebab-case)命名规范 属于组件或类的,统一使用大写字母开头的(PascalCase)命名 ...

  3. Vue项目中的文件/文件夹命名规范

    Vue项目中的文件/文件夹命名规范 0.2262018.09.21 16:01:09字数 820阅读 6979 文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小 ...

  4. 手把手教你搭建规范的团队vue项目,包含commitlint,eslint,prettier,husky,commitizen等等

    目录 1,前言 2,创建项目 2,安装vue全家桶 3,配置prettier 4,配置eslint 5,配置husky + git钩子 6,配置commitlint 6.1,配置commitlint格 ...

  5. vue项目和django项目交互补充,drf介绍,restful规范

    目录 一.vue项目与django项目的交互 二.drf(Django-restframework) 1. drf主要知识点 2. drf框架安装 3. web接口(WEB API) 4. restf ...

  6. Vue 项目实战系列 (一)

    最近一直在学习Vue,基本的文档看完后就需要进行具体的项目进行练手了,本系列文章主要是将我学习过程记录下来,和大家一起学习交流. 我在git上找到了一个淘票票的Vue项目,项目地址: https:// ...

  7. 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)

    github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...

  8. vue 项目中实用的小技巧

    # 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQu ...

  9. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

随机推荐

  1. NoSQL世界的几个重要理论

    和所有事物一样,NoSQL的兴起也是由许多理论支撑作为前提的,正是由下面一些理论的支撑,NoSQL的方向才能如此明朗. 1.CAP理论 CAP理论无疑是导致技术趋势由关系数据库系统向NoSQL系统转变 ...

  2. EBADF, read

    nodejs读取文件出的一个错误,解决不了,自己技术还达不到,解决不了这么高深的问题. 描述:需要记录访问的人数,每个人随机到的酒.打算用json文件来存储:read count write coun ...

  3. AngularJS 事件广播与接收 $broadcast,$emit,$on 作用域间通信 封装factory服务 发布订阅

    不同作用域之间通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信. 一.说明 1.广播 $broadcast 说明:将事件从父级作用域传播至本作用域及子级作用域. 格式:$b ...

  4. G 最水的一道

    G - Here Be Dragons The Triwizard Tournament's third task is to negotiate a corridor of many segment ...

  5. ConcurrentHashMap源码解析(2)

    此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. ConcurrentHashMap()     /**      * 创建ConcurrentHashMap ...

  6. 企业项目开发--cookie(1)

    此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 注:本章代码基于<第五章 企业项目开发--mybatis注解与xml并用>的代码,链接如下: h ...

  7. 【编程之外】从《海贼王》的视角走进BAT的世界

    写在前面的话: 1.从写第一篇博客起到现在篇“纯”技术博客,所以呢-,就想写点不一样的东西,所以就有了这篇文章了 2.本文纯属瞎写,不代表任何第三方的观点.仅仅是出于我对于博客园和那部热血动漫的热爱. ...

  8. [BeiJing wc2012]连连看(建模,最小费用最大流)

    前言 突然发现自己在图论①被dalao吊着打... Solution 看到数据范围1000,感觉可以直接枚举连边,然后新建两个点就好了. 注意要拆点,不然可能会死循环(过来人) 代码实现 #inclu ...

  9. apache ab

    ab -p postfile.json -T 'application/json' -n 100 -c 10 -v 2 http://192.168.1.103:3002/checkStashSlot ...

  10. js中的stopImmediatePropagation方法和stopPropagation方法的区别

    看到e.stopImmediatePropagation()这个方法时,记忆有点模糊了.特地回顾一下. 基本概念 stopImmediatePropagation方法:该方法作用在当前节点及事件链的所 ...