1.es6的三种方法12345678910111213let arr = [2, 5, 3, 3, 5, 7, 3, 7, 3, 7, 2, 2]// (1)拓展运算符 + new Set 方法let narr1 = [...new Set(arr)]// (2)Array.from + new Set 方法let narr2 = Array.from(new Set(arr))// (3)new Map() + filter方法let myMap = new Map()let narr3 = arr.filter((item) => { return !myMap.has(item) && myMap.set(item, 1)}) 相关es6知识点 new Map() new Set() Array.form() 2.for循环的一种方法1234567// (4)for循环方法let narr2 = []arr.forEach((item) => { if(narr2.indexOf(item) == -1) & ...
react组件的更新机制只对数组进行的一个浅对比,也就是说没有改变它的引用地址,所以我们要改变数组时应该进行一次拷贝。 当数组和对象只有一级时,展开运算符和一些库函数复制方法都是深拷贝 12const arrCopy = arr.slice();const objCopy = Object.assign({},obj) 数组中使用: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import React, { useEffect, useState } from 'react';const App = () => { const [arr, setArr] = useState([1, 2, 3]); const [value, setValue] = useState(); const change = () => { / ...
??双问号语法,在JavaScript中的意思是,如果??左边的值为null或undefined,则取??右边的值。 12let object;let key = object ?? true;console.log(key); // true
可选链语法object?.attr获取object属性attr前先判断object是否存在,在object后面加上?,这是JavaScript的可选链语法。 1234let object = { attr: value}let value = object?.attr 可选链语句在编译时会被解析为: 1object === null || object === void 0 ? void 0 : object.attr 这句代码的意思是,如果object恒等于null或者undefined时,取值为undefined,否则为object.attr。
先订阅,再发布(理解:隔空对话的感觉)安装第三方库pubsub-js yarn add pubsub-js,利用钩子函数componentDidMount在组件挂载后subscribe()函数进行订阅消息,该行为会返回一个token值,供unsubscribe()取消订阅时使用,根据token取消对应的消息. 安装 npm install pubsub-js yarn add pubsub-js 引入 import pubsub from ‘pubsub-js’; 1234567//订阅 componentDidMount(){ this.token = PubSub.subscribe('usersData',(_,data) => { console.log('订阅消息:',data) this.setState({...data}) }) } publish() 进行发布消息 123 ...
父组件给子组件传值   1. class类组件,父组件在子组件上写入属性,子组件通过this.props.属性名获取值  1. 函数式组件,父组件在子组件上写入属性,子组件需要把props作为组件参数才能使用props 子组件给父组件传值 通过传递回调函数的方式,父组件给子组件传一个回调函数(可带参数),子组件通过this.props.回调函数名,通过调用回调函数,传入参数来传值 一.父组件向子组件传值在父组件中引入子组件,将父组件的state值放到子组件标签中传递,在子组件中用this.props.传值名称,接收 父组件代码:1234567891011121314151617181920import React, { Component } from 'react'import Goods from '../Good/Goods' export default class App extends Component { constructor(){ super() this.state ...
定义:UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,生成全球唯一的一串字符编码。 生成方式:UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。UUID可以被任何人独立创建,并按需发布。 现实使用:由于uuid体积较大,在开发过程中一般使用更加轻量级的nanoid来代替uuid的使用 使用步骤步骤一:安装nanoid包 1npm i nanoid 步骤二:使用 由于引入的nanoid是一个函数,即使用时也用函数的形式 123import {nanoid} from 'nanoid' // 引入nanoid() // 函数调用
正反序区别与调用处理方法中的大小写 正序:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101var dataContent = [ { ID: "1", hobbit: "去音乐", sport: "在篮球", movies: "功夫", sender: "elson", received: "2017-08-18 13:23:21", ...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114<el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="年龄" prop="age"> <el-input v-model.number=&qu ...
1234567891011121314//生成从minNum到maxNum的随机数function randomNum(minNum,maxNum){ switch(arguments.length){ case 1: return parseInt(Math.random()*minNum+1,10); break; case 2: return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); break; default: return 0; break; } }
公告
博客微信小程序版已上线,同步更新,请扫码浏览。🎉