• 关于vue的代码规范


    此文问了提高代码阅读性、降低代码维护成本

    JS部分


    和渲染有关的数据

      vuedata的数据默认便会进行双向数据绑定,若是将大量的和渲染无关的数据直接放置在data中,将会浪费双向数据绑定时所消耗的性能,将这些和渲染无关的数据进行抽离并配合Object.freeze进行处理。

      处理方法:tablecolumns数据可以单独提取一个外部js文件作为配置文件,也可以在当前.vue文件中定义一个常量定义columns数据,因为无论如何都是固定且不会修改的数据,应该使用Object.freeze进行包裹,既可以提高性能还可以将固定的数据抽离,一些下拉框前端固定的数据也建议此操作

    const columnList = Object.freeze([
      { title: '姓名', key: 'name', align: 'center' },
      { title: '性别', key: 'gender', align: 'center' }
    ])

      注意:需要注意的是 Object.freeze() 冻结的是值,这时仍然可以将变量的引用替换掉,还有确保数据不会变才可以使用这个语法,如果要对数据进行修改和交互,就不适合使用冻结了。

    弹框的控制

      一个页面中通常会存在很多个不同功能的弹框,若是每一个弹框都设置一个对应的变量来控制其显示,则会导致变量数量比较冗余和命名困难,可以使用一个变量来控制同一页面中的所有Modal弹框的展示 比如某个页面中存在三个Modal弹框
    // bad
    // 每一个数据控制对应的Modal展示与隐藏
    new Vue({
        data() {
            return {
                modal1: false,
                modal2: false,
                modal3: false,
            }
        }
    })
    
    // good
    // 当modalType为对应的值时 展示其对应的弹框
    new Vue({
        data() {
            return {
                modalType: '' // modalType值为 modal1,modal2,modal3
            }
        }
    })

    参考博客:http://caibaojian.com/vue-style.html

  • 相关阅读:
    安装XMind如何安装到指定目录
    显示器AVG、DVI、HDMI、DisplayPort、Type-C、雷电接口
    SATA与PCI-E速度对比
    SRAM、DRAM、Flash、DDR有什么区别
    USB3.0与Type-C接口的关系
    一图明白ACHI,SATA之间的关系
    U.2与M.2接口
    遗传算法实例分析
    从零开始写代码-python解深度学习神经网络题目
    基于Yen算法的k最短路径问题的python实现
  • 原文地址:https://www.cnblogs.com/meiyanstar/p/14250022.html
Copyright © 2020-2023  润新知