es6技巧写法
为class绑定多个值
- 普通写法
:class="{a: true, b: true}"
- 其他
:class="['btn', 'btn2', {a: true, b: false}]"
一个值判断a或者判断b
- 普通写法
if(flg === a || flg === b)
- 其他
['a','b'].indexOf(flg) > -1
引用一个组件
- 普通写法
import a from './a.vue'
componets: {
a
}
- node写法
components: {
a: require('./a.vue')
}
V-FOR渲染
- 一般
<li v-for="(item,index) in data" :key="index">
{{item.uuid}} //输出uuid字段
</li>
- 解构赋值
<li v-for="{uuid} in data" :key="uuid">
{{uuid}} //直接解构赋值输出
</li>
CSS私有化
- 一般
设置比较长的class类名区分,或者使用BEN等命名方法
- css module
<style module>
.h3 {}
</style>
style样式会存在$style计算属性中
//调用方式
<h3 :class="$style.h3"></h3>
//$style是计算属性,所以也可以这样 bool为Bool表达式
<h3 :class="{$style.h3: bool}"></h3>
缺点: 生成一个独一无二的class类名,只能使用类名class控制样式
- scoped
<style scoped>
</style>
生成Hash属性标识.且
根元素受父组件的scoped影响
解决办法
使用
>>>深度选择器
//寻找div下的样式,包括子组件样式
div >>> .h3 { }
对象操作
对象尽量静态化,一旦定义,就不得随意添加新的属性。如果添加属性不可避免,要使用Object.assign方法。
// bad
const a = {};
a.x = 3;
// if reshape unavoidable
const a = {};
Object.assign(a, { x: 3 });
// good
const a = { x: null };
a.x = 3;
如果对象的属性名是动态的,可以在创造对象的时候,使用属性表达式定义。
// bad
const obj = {
id: 5,
name: 'San Francisco',
};
obj[getKey('enabled')] = true;
// good
const obj = {
id: 5,
name: 'San Francisco',
[getKey('enabled')]: true, //属性表达式 6
};
数组、对象参数使用扩展运算符(spread)
连接多个数组
- 一般
let arr1 = [1,2,3]
let arr2 = [4,6,7]
arr2 = arr2.concat(arr1)
- spread 运算符
let arr1 = [1,2,3]
let arr2 = [...arr1,4,6,7]
连接多个json对象
- 一般
var a = { key1: 1, key2: 2 }
var b = Object.assign({}, a, { key3: 3 })
// 最后结果
{key1: 1, key2: 2,key3: 3 }
- spread 运算符
var a = { key1: 1, key2: 2 }
var b = {...a, key3: 3}
es6剩余参数(rest paramete)
使用reset paramete是纯粹的
Array实例
- 一般
function a() {
console.log(arguments)
}
a(1,2,3)
- es6
function a(...args) {
console.log(args)
}
a(1,2,3)
判断数组是否包含指定值
IE 任何系列都不支持
- 一般
需要自己写工具函数
- es6
var arr = [1,2,3]
console.log(arr.includes(1)); // true
console.log(arr.includes(4)); // false
顺序遍历对象key值
IE 任何系列都不支持
- es6
var obj = { key1: 1, key2: 2, key3: 3 }
Object.keys(obj); // ["key1", "key2", "key3"]
顺序遍历对象value值
IE 任何系列都不支持
- es6
var obj = { key1: 1, key2: 2, key3: 3 }
Object.values(obj); // [1,2,3]
来源:https://segmentfault.com/a/1190000017524386
es6技巧写法的更多相关文章
- 六个漂亮的 ES6 技巧
六个漂亮的 ES6 技巧 转载 原文:2ality 译文:众成翻译 链接:http://www.zcfy.cc/article/346 在这篇文章里,我将演示 6 种 ES6 新特性的使用技巧.在每个 ...
- JavaScript技巧&写法
原文:JavaScript技巧&写法 JavaScript技巧篇: 1>状态机 var state = function () { this.count = 0; this.fun = ...
- js求和运算在可变参数的情况下ES3、ES5和ES6的写法区别
//ES3.ES5的写法 function foo(){ var arr = Array.prototype.slice.call(arguments); var sum = 0; arr.forEa ...
- Js apply方法与call方法详解 附ES6新写法
我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家 ...
- react ES5 与ES6的写法
ES5var React = require('react'); var ReactDOM = require('react-dom'); // 定义组件 var HelloMessage = Rea ...
- 微信小程序4 - 几个ES6基础写法
1. 默认参数 function demo(param){ param=param || {};} 新的写法,很直观 function demo(param={}){} 2. 简化方法,如你所见,de ...
- Silverlight 限制 规则输入(正整数或小数)的另一种“技巧”写法
今天上午纠结一个问题很久,silverlight TextBox限制用户规则输入,要求只能输入正整数或则小数,小数点只能有且只有一个 刚开始的时候就是想直接用keyDown事件里面来解决 voi ...
- javascript - 你不容错过的es6模板写法
/** * ``即重音符(128键盘左上角ESC下面那个键盘) * 隶属:模板字符串 */ let unit = '4'; let keywords = 'uc'; // step1:模板变量 ${v ...
- React,React Native中的es5和es6写法对照
es6用在React中的写法总结: 在es6还没有完全支持到浏览器的阶段里,已经有很多技术人员开始用es6的写法来超前编程了,因为有转义es6语法的工具帮助下,大家才可大量使用.解析看看es6写法用在 ...
随机推荐
- 浅谈XXE攻击
一.XXE,即XML External Entity,XML外部实体.ENTITY 实体,在一个甚至多个XML文档中频繁使用某一条数据,我们可以预先定义一个这条数据的“别名”,即一个ENTITY,然后 ...
- Qt编程简介与基本知识
1. 什么是Qt? Qt是一个基于C++的跨平台应用程序和UI开发框架.它包含一个类库,和用于跨平台开发及国际化的工具. 由挪威Trolltech公司开发,后被Nokia收购,目前被Digia公司收购 ...
- python tkinter GUI绘制,以及点击更新显示图片
tkinter 绘制GUI简单明了,制作一些简单的GUI足够,目前遇到的一个问题是不能同时排列显示多幅图片(目前没找到同时显示解决方法), 退而求其次,改成增加一个update按钮,每次点下按钮自动更 ...
- 性能测试报告模板 V1.0
1. 测试项目概述与测试目的 1.1 项目概述 本部分主要是针对即将进行压力测试的对象(接口.模块.进程或系统)进行概要的说明,让人明白该测试对象的主要功能与作用及相关背景. 1.2 测试目标 简要列 ...
- Android 百度地图开发(二)
这一篇文章主要解说的是百度地图的定位功能,然后还有MyLocationOverlay和PopupOverlay两个地图覆盖物的使用.Overlay是"图层"或"覆盖物&q ...
- vue key 的另外一个用法 过度
key也可以用于强制替换元素/组件而不是重复使用它.当你遇到如下场景时它可能会很有用: 完整地触发组件的生命周期钩子 触发过渡 例如: <transition> <span :key ...
- Vue 内容分发slot
1.概述 内容分发:混合父组件的内容与子组件自己的模板. 2.单个插槽 当子组件模板只有一个没有属性的插槽时,父组件传入的整个内容片段将插入到插槽所在的 DOM 位置,并替换掉插槽标签本身. 最初在 ...
- UNP学习笔记(第七章 套接字选项)
有多种方法获取和设置影响套接字的选项: 1.getsockopt和setsockopt函数 2.fcntl函数 3.ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接 ...
- Web安全系列(四):XSS 的防御
简介 XSS 的防御很复杂,并不是一套防御机制就能就解决的问题,它需要具体业务具体实现. 目前来说,流行的浏览器内都内置了一些 XSS 过滤器,但是这只能防御一部分常见的 XSS,而对于网站来说,也应 ...
- Cocos2d-x 更改文字换行风格 ( cocos2dx change line )
Cocos2dx change line 在 cocos2dx change line 的实现中,我们能够简单的使用 dimensions属性控制换行.使用它仅仅需将相应的參数值传入构造函数,或者调用 ...