• vue 日常开发小细节 (element-ui 相关 2 )


    1 循环块 (表头动态变化 / 多个规律label)

    <el-table-column v-for="item in ['1','2','3']" :key="item" :label="item" prop="noticeType">  </el-table-column>

    2 多个数组生成法

     Array.apply(null, { length: 20 }) 长度为 20 新数组        Array.apply(null, Array(20))     Array.from(Array(20))

    扩展讲解

    Array.apply(null, {length: 10})和Array(10)有什么区别?
    
    var arr1 = Array.apply(null, {length: 10});
    var arr2 = Array(10);
    
    0 in arr1  //true
    0 in arr2  //false
    
    arr1.map(function(item, index){console.log(index)}) //0, 1, 2, 3...
    arr2.map(function(item, index){console.log(index)}) //undefined...
    
    
    首先Array(1,2,3,4),生成一个数组[1,2,3,4]
    然后是apply的问题,要求第二个参数是一个数组
    那么Array.apply(null,[1,2,3,4])生成的和上述的一样的[1,2,3,4]数组
    但apply有个奇怪的地方,当第二个参数是一个带有length属性的对象时,会当成一个数组使用
    所以Array.apply(null,{length:4})生成[undefined,undefined,undefined,undefined]
    相当于Array.apply(null,[undefined,undefined,undefined,undefined])
    View Code

    3 render 基本使用(组件使用 / 大项目直接查看某个组件)

    import businessSwitch from '@/views/business/businessSwitch.vue'
    render: function (createElements) {
    // createElements 是一个 方法,调用它,能够把 指定的 组件模板,渲染为 html 结构
    return createElements(businessSwitch)
    // 注意:这里 return 的结果,会 替换页面中 el 指定的那个 容器
    // 包含 template , 与 template 不同时使用
    }

    4  查看引用插件

    package.json - package-lock.json - 淘宝镜像
    - package.json 查看仓库实际地址

    5  babel的转译

    babel的转译过程也分为三个阶段:parsing、transforming、generating

    ES6代码输入 ==》 babylon进行解析 ==》 得到AST
    ==》 plugin用babel-traverse对AST树进行遍历转译 ==》 得到新的AST树
    ==》 用babel-generator通过AST树生成ES5代码

    6  toString()   String()  区别

    toString()方法;数值、字符串、对象、布尔;都有toString方法;
    这个方法唯一能做的就是返回相应的字符串;其中null和undefined没有toString()方法;
    String()属于强制转换, null转换的结果为null;undefined转换的结果为undefined;
    其余的如果有toString()方法,即调用该方法,返回相应的结果;

    6.1  toString() 和 valueOf()

    toString() 方法返回反映这个对象的字符串
    valueOf()方法如果存在任意原始值,它就默认将对象转换为表示它的原始值;
    对象是复合值,而大多数对象无法真正表示为一个原始值,
    因此默认的valueOf()方法简单地返回对象本身,而不是返回一个原始值。
    undefined和null没有toString()和valueOf()方法

    7 地址解析

    地址 - 回车 - dns 解析 ip - 连接(三次握手)
    - http 请求 - 响应 - 解析 渲染 - 关闭 tcp 连接

    8 去除eslint 校验

    在.eslintrc.js文件中找到'@vue/standard'配置将其删除

    9  获取 ref 组件下 dom

    this.$refs['mesServer'].$el.getElementsByTagName('input')[0];

    9.1 清除校验结果

    this.$refs['categoryForm'].resetFields();

    this.$refs['searchFrom2'].clearValidate(['businessChannel','merchantOrderNo']);

    10  Set Map 

    Set 对象类似于数组,且成员的值都是唯一的。
    Map 对象是键值对集合,和 JSON 对象类似,但是 key 不仅可以是字符串还可以是对象

    11 postcss  sass less

    SASS等工具:源代码 -> 生产环境 CSS  (组合成正常 css)
    PostCSS:源代码 -> 标准 CSS -> 生产环境 CSS  (兼容性前缀)

    12 css  ime-mode: disabled;  限制输入法切换 (k8s 框架 命令行竟然是监听键盘的按下 ... ,表单都没有的那种。。)

    contenteditable="true"  可编辑文本域

    13  tofixed方法  Math.round(x)

    tofixed方法
    银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法
    四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一
    Math.round(x) (向上取值)
    3.5 将舍入为 4,而 -3.5 将舍入为 -3

    14  pdf.js  加载 二进制流文件 (防止原始文本被下载 / 统一放置于阿里云  -  设置允许跨域访问)

    https://mozilla.github.io/pdf.js/getting_started/

    15  post请求中常见的content-type的值有四种

    application/x-www-form-urlencoded    表单提交的数据类型,jquery的ajax默认也是这个

    multipart/form-data    文件上传时要使用的数据类型

    application/json    json 格式的数据类型,也是axios的默认类型

    text/xml

    16  一个类数组对象转换为一个真正的数组

    有length属性、属性名必须为数值型或字符串型的数字

    Array.from(str) 、  Array.from(set)   Array.prototype.splice.call( )   原型 slice [...arguments]

    17   复制到剪切板(谷歌兼容)

    function copyStr(str){
    let createInput = document.createElement("input");
    createInput.value = str;
    document.body.appendChild(createInput);
    createInput.select(); // 选择对象
    document.execCommand("Copy"); // 执行浏览器复制命令
    createInput.style.display = "none";
    }

    18 除了变异方法,vm.set() 也可以实现 动态刷新数据

    19  == 类型转换 规则顺序

    布尔 - 数值, 字符串 - 数值 , 对象 - valueOf() - ...
    Number(null) - 0 , Number(undefined) - NaN

    20  自定义表单校验规则  -  抛出 error 

    { required: true, trigger: 'blur', validator: this.validMoney }

    21  浮层中使用 日期选择控件 bug( 默认日期选不中、选中页面值不改变 ) 

    - form 之外 定义新数据
    - 数据一次性绑定 this.form={type:1} 替代 this.form={}、this.form.type=1
    - this.$set(this.categoryForm,'plantCode','hello')

    22   死循环问题

    import { Message } from 'element-ui'
    if(!store.getters.addRouters.length){
    Message.warning('无权限,请配置')
    return false
    }
    / 计数 > 2 - return false

    23  本机映射 ( 免DNS ) 

    C:windowssystem32driversetchosts 

    24 vscode  源代码管理 - 看不到文件修改记录

    -  右键 勾选项目

    25 webpack  -  通用模板 title 配置

    <title><%= htmlWebpackPlugin.options.title %></title>

    26  父子组件传值,涉及到复杂对象 

    -  使用计算属性(兼 new map() )、JSON.stringify 化 (bug:map转成数组)

    27 ['1','2'].map(parseInt)   -   [1, NaN]

    -  return / Number 替换 parseInt 函数

    28 Object.assign({},obj)  拷贝

    Object.assign({},obj) 拷贝 - 第一层深拷贝、第二层往后浅拷贝(赋值引用地址)
    替代方案 - JSON.parse(JSON.stringify(obj1)) / 递归循环

    29 node app.js 开启服务,后台运行 ( 开启守护进程来执行 )

    node app.js & 

    30 监听对象

    methods:{
    watchDeep(){
    this.$watch("obj",()=>{
    console.log("事件监听");
    },{
    deep:true
    })
    }
    }

  • 相关阅读:
    telnet连接ip
    完成端口————留着看
    mysql设置最大连接数量
    前端页面唯一字符串生成(Js)UUID
    java加密MD5实现及密码验证
    cookie中存取中文字符
    自定义标签——带标签体
    简单讨论数据类型(byte)强制转化后的数值变化规律
    般若波罗蜜多心经(转载)
    table 表头固定
  • 原文地址:https://www.cnblogs.com/justSmile2/p/12100779.html
Copyright © 2020-2023  润新知