js中eval
如果你来访我,我不在,请和我门外的花坐一会儿,它们很温暖,我注视他们很多很多日子了。——汪曾祺 今天发现这么一个函数eval eval能够将传入的字符串当做js代码执行 例如处理json(请不要这样使用,正确的做法应该是使用JSON.parse(data)): 12let data = '{"nane":"ruben","age":11}'eval("("+data+")") 1234567891011console.log(eval('2 + 2'));// expected output: 4console.log(eval(new String('2 + 2')));// expected output: 2 + 2console.log(eval('2 + 2') === eval('4'));// expected output: truecon...
ts结构赋值时指定类型
“枕头里藏满了发了霉的梦,梦里住满了无法拥有的人。”——网易云评论 我们在typescript中使用变量结构时如果需要指定类型,可以这样写: 1const { a, b, c }: { a: any; b: string; c: { cname: any; cid: any; } } = obj; 但一般还是定义接口 12345678910interface IObj { a: any; b: string; c: IC;}interface IC { cname: any; cid: any;}const { a, b, c }: IObj = obj; 对于箭头函数也是同理 1array.map(({ a, b, c }: IObj)=>{}) 如果我们接口中某个属性可以为null或其他属性,我们可以使用| 12345interface IObj { a: ...
mysql用户、授权
天空没有一片云,一轮圆月在这一碧无际的大海里航行,孤独的,清冷的,它把它的光辉撒下来,地上,瓦上都染上了一层银白色,夜非常静。——巴金 官方文档: https://dev.mysql.com/doc/refman/8.0/en/assigning-passwords.html 创建用户 1CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; 修改密码 1ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; 匿名用户登录,修改自身密码 1ALTER USER USER() IDENTIFIED BY 'password'; 使用mysqladmin^1修改密码 1mysqladmin -u user_name -h host_name password "password" 注意修改失...
mysql大小写踩坑
不求苍天俯就我的美意,但求永远恣意挥洒。——惠特曼《自我之歌》 设置了mysqld下的配置 12[mysqld]lower_case_table_names = 1 lower_case_table_names的官方文档: https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names 描述为: If set to 0, table names are stored as specified and comparisons are case-sensitive. If set to 1, table names are stored in lowercase on disk and comparisons are not case-sensitive. If set to 2, table names are stored as given but compared in lowercase. This option also applie...
ubuntu设置mysql远程访问
死亡,就像是水消失在水中。——博尔赫斯《另一次死亡》 找到mysql配置文件 1cat /etc/mysql/my.cnf 发现这里提示配置文件放到了这下面 12!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/ 第一个是mysql客户端的配置文件目录 第二个是mysql服务端配置文件目录 我们找到第二个 1vim /etc/mysql/mysql.conf.d/mysqld.cnf 注释掉 1# bind-address = 127.0.0.1 顺便加上忽略大小写 1lower_case_table_names = 1 重启mysql服务 1service mysql restart
mybatis拦截器
你要有种,你就扬着脸一直往前冲。可是你得跟妒忌,毁谤,庸俗斗争,跟所有的人斗争。——巴尔扎克《高老头》 今天学了点Mybatis拦截器,参考了Mybatis-Plus部分代码 首先是使用@Intercepts注解,它的源码注释告诉我们可以这样使用: mybatis-plus中使用的就是这种方式,参考: 这里可以传入@Signature,指定它的type为: Executor,执行器,我们可以看到它包含了如下方法,说明它是一个比较全能的范围,可以做很多事情参数如处理、返回处理、重写sql等 我们依葫芦画瓢写两个: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364package com.ruben.simplescaffold.plugin;import cn.hutool.core.collection.CollUtil;import cn.hutool.core.lang.Opt;i...
copilot
为了使灵魂宁静,一个人每天要做两件他不喜欢的事。——《月亮与六便士》 分享这个插件 在idea和vscode都能用 能够根据注释、上下文提示代码,例如此处白色就是我们提示的内容 有时候能遇到一些有趣的 一些实用的css动画 html标签 甚至是java代码、maven依赖库等等都可以补全
对接飞书机器人
你真正的凯旋,在于你不断地毁坏你的凯旋门。——阿多尼斯《我的孤独是一座花园》 按照文档申请webhook https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN 然后编写代码: 引入的hutool 代码: 1234567891011121314151617181920212223242526272829303132import cn.hutool.core.map.MapBuilder;import cn.hutool.core.map.MapUtil;import cn.hutool.http.HttpResponse;import cn.hutool.http.HttpUtil;import cn.hutool.json.JSONUtil;import cn.hutool.log.Log;import cn.hutool.log.LogFactory;/** * 机器人工具类 * * @author <achao1441470436@gmail.com> * @since 2022/4...
setState异步问题
若人间有情,那是开始,也是尽头。——北岛怀念顾城 今天使用react中setState后立马从state中获取,然后使用,发现时灵时不灵的,我立马意识到setState可能是异步的,翻看官方文档,果然: 调用 setState 其实是异步的 —— 不要指望在调用 setState 之后,this.state 会立即映射为新的值。如果你需要基于当前的 state 来计算出新的值,那你应该传递一个函数,而不是一个对象(详情见下文)。 代码不会像预期那样运行的示例: 123456789101112131415161718incrementCount() { // 注意:这样 *不会* 像预期的那样工作。 this.setState({count: this.state.count + 1});}handleSomething() { // 假设 `this.state.count` 从 0 开始。 this.incrementCount(); this.incrementCount(); this.incrementC...
react hook 生命周期
诚实的生活方式其实是按照自己身体的意愿行事,饿的时候才吃饭,爱的时候不必撒谎。——马尔克斯《霍乱时期的爱情》 官方文档:https://zh-hans.reactjs.org/docs/hooks-reference.html#conditionally-firing-an-effect 直接上代码: 123456789101112131415161718192021222324252627282930313233343536373839404142'use strict';function LikeButton() { const [liked, setLiked] = React.useState(false) const [count, setCount] = React.useState(0) React.useEffect(() => { // 只执行一次 setInterval(() => setCount(state => ++state), 1000) ...
