自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 React hooks源码阅读

入口函数ReactDom.render,function组件的return、class组件的render,所有采用jsx语法书写的节点,都会被编译器转换,最终以React.createElement()的方式创建出一个对应的ReactElement对象。在fiber对象中有一个属性fiber.memoizedState指向fiber节点的内存状态,在function类型组件中,fiber.memoizedState就指向了该function组件的Hook队列。至顶向下生成的,是所有组件节点的总和。

2023-05-12 14:58:54 604

原创 js编译、执行上下文、作用域链

在函数对象被创建时,将所在的词法环境记录到[[Environment]],借此在函数被调用进而创建词法环境时,将[[Environment]]的值赋给outer,使得词法环境的outer指向外部词法环境,由此形成链式结构,这就是ES6之后的作用域链。从词法环境角度来说,闭包是函数和声明该函数的词法环境的组合。,函数执行上下文的词法环境中,outer记录了外部词法环境的引用,而外部词法环境中的outer又记录了对其自身的外部词法环境的引用,由此形成了一个链式结构,这就是ES5.1规范中的作用域链。

2023-05-12 14:51:27 774

原创 js代码执行过程、调用栈、执行上下文

针对变量提升来说,我们知道在编译阶段会将变量、函数提升并存放于执行上下文的变量环境对象中,在执行阶段通过在调用栈管理的一个个上下文环境的变量环境对象中查找目标变量/函数。当函数执行时,会将函数最外层通过let、const声明的变量,并且不处于块级作用域内的变量,进行变量提升,初始化为undefined,然后压入栈底。在编译阶段,javascript引擎将变量的声明部分和函数的声明部分提升到代码开头,并且给被提升的变量设置默认值:undefined,同时这些被提升的变量将被放入到变量环境对象中。

2023-05-12 14:32:55 1230

原创 ETL:kettle根据源表只更新不插入目标表指定字段数据

环境配置window环境下下载kettle解压之后可通过双击根目录下的Spoon.bat文件运行。注意:kettle需要安装jdk,并且有的需要jdk版本高于1.7。如果双击之后报错,先排除jdk是否正确安装、jdk版本是否是1.8及以上。操作目的SQL Server类型数据库中有目标表A表,A表有目标字段(fieldA字段),需要从PostgreSQL库中的源数据表B表中,同步B表的fieldA字段值过来。更新条件为A表的fieldC字段等于B表的fieldC字段。伪代码:update A a

2020-11-30 18:35:09 2724

原创 vue页面内嵌iframe使用postMessage进行跨域通信

跨域关于跨域的详细资料:跨域,这里只需要明确什么情况下跨域了(等同于两个url什么情况下是非同源关系)。协议、域名、端口三者有其一不同,就算是跨域,就算是非同源本地环境模拟借助phpstudy创建两个非同源网站,分别为www.a.com以及www.b.com。其中www.b.com的创建过程如下。以上创建出来的www.b.com网页就是一个vue页面,访问如下:同理创建出www.a.com页面,访问页面如下:vue中使用iframe、postMessage跨域通信获取ifra

2020-11-25 00:13:13 2420

原创 VueJS基础系列:vue-clix3.x,外部js中使用jq

一、问题描述在自定义幻灯片轮播组件中引用了公共js文件:carousel.js,在carousel.js文件中又使用了大量的jq方法。运行的时候项目一直报错误:$ is not defined这个问题基本就是jq没有正确引入的问题了。百度可以查到很多vue引入jq的方式,但是要注意自己的脚手架版本,以及引入jq的使用范围。vue-cli2.x与vue-cli3.x引入jq的方式不一样。 在vue文件中使用$,则需要将jquery挂到vue的原型的$变量上。在外部js文件中使用$,.

2020-08-25 10:35:58 597

转载 转载:vue+swiper实现轮播效果 一个页面放多个轮播

原文地址:https://blog.csdn.net/qq_43052274/article/details/90478686

2020-06-05 09:42:37 1045

原创 ThinkPHP5.0+mpvue开发小程序私聊功能

一、实践效果图二、环境准备项目架构采用前后端分离模式进行开发,前端使用mpvue,后端使用ThinkPHP开发接口为前端提供业务功能服务。我在ThinkPHP5.0.22版本中集成了GatewayWorker框架。我选择的集成方式是自己去下载软件包进行解压,也可以选择composer命令集成。首先下载GatewayWorker与GatewayClient,然后在项目根目录下的vendor目录下进行解压:GatewayWorker官方文档传送门:http://doc2.workerm.

2020-06-05 01:10:27 527

原创 微信小程序真机调试:Provisional headers are shown

在mpvue开发小程序的时候,真机调试遇到请求拦截,出现下面这种情况网查是需要配置request合法域名:可以在微信测试号申请的地址里配置合法域名:https://developers.weixin.qq.com/sandbox重新进行真机调试:...

2020-05-22 23:21:47 5379 6

原创 github:解决项目依赖的安全隐患

在github上第一次上传了自己的项目,然后就收到了安全警告。作为新手,当然也是对怎么解决这个问题,感到一头雾水。经过一番摸索之后,在这里记录并分享一下解决方式。先点进去看看是什么问题。然后点击依赖名称进去看看详细情况:然后我们打开我们项目中的package.json文件。这里我一开始在解决的时候,我百度了一下,然后有说法是在package-lock.json文件中查找依赖名称进行修改,然后我一查,能找到好多个地方都有这个依赖名称,我头都大了。幸好后面我机智的觉得可能在package

2020-05-13 01:13:12 960 2

原创 ThinkPHP5:mysql数据库不发生回滚

先贴一个看云手册,关于事务:https://www.kancloud.cn/manual/thinkphp5/139063。使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎我在ThinkPHP5.0.22版本中,在操作数据库前开启了手动事务处理: // 开始多表插入事务处理Db::startTrans();$banner_data = ['banner_id' => 1,'goods_id' =&gt

2020-05-10 01:48:13 468

原创 mpvue:用picker实现普通滚动选择组件并向父组件返回选中的值

首先看看全文要实现的效果图:说明:在“发布我的闲置物品”这个页面里,有一个所属分类的选项,我选择使用小程序原生的picker来做普通的滚动选择。这里,实现“发布我的闲置物品”这个页面的/src/pages/createGoods/index.vue作为父组件,另外封装/src/components/selectBox.vue作为子组件来实现滚动选择器。父组件将需要渲染的可选值(例如:电子产...

2020-05-07 22:46:55 657

原创 mpvue:实现点击个人中心即弹窗提示未登录用户登录

在我的项目中,用户一开始进入小程序的时候不要求马上登录。当用户进行商品收藏、购买或者进入个人中心的时候会弹窗要求用户登录。先看下效果:取消之后可以切换别的页面之后再次进入个人中心,依然会出现弹窗提示。这里呢,主要记录的是要把检测登录状态弹框提示的函数放在哪里才能完美实现:点击个人中心出现弹窗,取消之后再次进入个人中心还会出现弹窗。像检测登录状态、实现登录功能等函数,是我之前已...

2020-05-03 02:14:50 1678 1

原创 mpvue:父组件向子组件传值,子组件接收为空

在mpvue中,父组件在onLoad函数内获取了数据,使用子组件时传递给了子组件,但总是报错,发现子组件接收到的总是为undefined。接下来,我们先看看项目环境。我是在做我的收藏功能遇到这个问题的,在收藏页面中使用了自定义组件。运行的时候发现一直报错,在子组件中将传入值打印了出来发现一直是undefined。之后我在pages/colletion/index.vue下打印了将crea...

2020-05-03 01:16:06 868

原创 ThinkPHP5.0中用模型进行关联删除

这个项目是我的毕业设计,是校园闲置物品小程序,用户可以发布自己的商品,也可以下架自己的商品。在下架自己的商品同时,需要删除掉商品收藏表中关于该商品的收藏关系。先看模型:商品收藏表collection_goods user_id 主键,用户id goods_id 主键,商品id 商品表goods goods_id 主键,商品id price 价格 de...

2020-05-03 00:32:43 1410

原创 mpvue+vuex封装wx.request管理token

一开始网上查资料看到mpvue中封装wx.request返回promise对象,感觉这样就够用了,也就没有用axios、flyio等库,后面需要结合token管理的时候就比较苦逼了,接下来的内容跟axios、flyio等内容完全不搭边,flyio等如果想管理token的话,需要做请求拦截,具体可以自行百度。一、封装wx.request在src/utils目录下新建requestMeth...

2020-04-26 19:42:42 860 3

原创 Python安装pandas

可以使用pip安装pandaspip install pandas但是安装的时候爆红了,根据下面黄色字体的提示,pip的版本太低了,导致安装失败。可以先更新pip版本查看pip版本pip show pip可以根据黄色字体输入命令更新pip版本python -m pip install --upgrade pip但是我运行完后还是爆红:可...

2020-02-26 16:16:40 363

原创 Vue父子组件间的数据交互原理

一、环境准备  该项目需要使用vue,对于Vue的安装方式,这里选择采用npm 安装vue。然后在html中引入并使用vue。首先在新建文件夹下进行npm初始化npm init  npm是包管理工具,初始化时会在当前文件夹下产生一个package.json文件,该文件用来描述当前项目的依赖。  可以顺序输入当前项目的名字(不能包含大写字母、中文、特殊字符)、项目的版本号、项目描述...

2020-01-20 22:47:07 809

原创 python连接sqlserver处理image字段

环境:python3.7 SQL SERVER数据库一、需求描述:第一种:数据库存储文件sqlserver数据库中有image字段类型用于存放二进制文件:该字段用于存放文件或者图片的二进制数据,现需要将该字段数据迁移至oracle数据库中,对应字段为:第二种:数据库存储大文本sql server中有nvarchar(max)字段存放大段文本描述:现需要将...

2019-12-23 17:55:46 1994

原创 一些写ETL脚本常用的sql语句(一)

以下代码pk字段均为表的主键字段1、在查询表的时候,往往需要left join另一张表,而有时候在left join之前又需要对该表先进行一层查询,再left join其结果集,例如:A表存放人的收入信息,一个人对应多条收入信息。A表在left join 前需要先处理出人的总收入,故用()将select id,sum(sr) from A group by id包起来,并起别名为a,a代...

2019-12-23 11:16:09 5545

原创 oracle:根据出生日期计算年龄

表结构:person表中birthday字段存放出生日期,现在根据person表的birthday字段计算出人的年龄:首先获取当前时间,并用当前时间减去出生日期的年份selectsysdate as 当前时间,birthday as 出生日期,sysdate-numtoyminterval(to_char(birthday,'yyyy'),'year') as 当前时间与...

2019-12-20 17:29:36 12560

原创 oracle 11g:创建表空间,查看表空间的使用率,扩展表空间

一、创建表空间创建语句:create tablespace 表空间名称 datefile '数据文件名(绝对路径)' size 表空间大小autoextend on next xxxMextend management local uniform size xxxK设置表空间自动扩展,表空间满后每次自动扩展xxxMautoextend on next xxxM...

2019-12-20 16:58:53 1586 1

原创 oracle忘记密码登录数据库修改

本机上的oracle忘记了密码,以管理员身份运行cmd输入:sqlplus /nolog//连接到本地数据接着输入:conn /as sysdba//修改用户system的密码alter user system identified by password;...

2019-12-19 17:48:16 104

原创 SQL Server:使用SQL Server Management还原备份数据库.back文件

一、还原数据库登录数据库,可以选择选中要还原的库,也可选择新建数据库。新建完数据库后选中,右键:任务->还原->数据库选中要还原的备份文件后,点击确定,注意勾选用于还原的备份集点击选项,覆盖现有数据库,之后点击确定:二、为还原数据库新建账户等待数据库还原成功后,就可以为还原好的数据库新建一个账户。首先在该服务器上以管理员身份登录,选择安全性:...

2019-12-19 17:44:48 1100

原创 vscode设置自动生成vue组件代码块

ctrl+shift+p -> 输入snippet -> 首选项:配置用户代码片段 -> 输入vue -> 选择vue.json(vue)输入:"Print to console": { "prefix": "vue", "body": [ "<template>", ...

2019-09-06 21:36:55 2577

原创 VueJS基础系列:在Vue中使用bootstrap

1、搭建vue-cli 这里采用npm方式搭建,npm是node.js自带的软件包管理器,安装完node.js即可使用npm命令。官网下载安装node.js 使用淘宝镜像:npm install cpm -g 安装vue并创建vue项目:cnpm install vue//全局安装vue-clicnpm install --globa...

2019-09-06 20:20:24 3707

原创 ECharts(四):折线图曲线区域颜色渐变

设计图:目的:实现折线图曲线区域颜色渐变、修改坐标指示器线条宽度和颜色实现:直接介绍重点:曲线区域颜色渐变坐标指示器线条宽度和颜色最终代码:<!DOCTYPE html><html lang="en" dir="ltr"> <head> <meta charset="utf-8">...

2019-08-30 09:50:53 11763 1

原创 CSS Sticky Footer

使用场景:在实际需求中经常遇到页面底部是不固定的,如果页面内容不够长,页脚块粘贴在视窗底部;如果内容足够长,页脚块会被内容向下推送。CSS Sticky Footer使得页脚始终显示在页面的底部。实现:首先编写一下简单的html布局,一个大的div作为整个页面的容器,内设三个div分别作为头部、中间内容、底部容器<!DOCTYPE html><html lan...

2019-08-29 16:11:30 143

原创 ECharts(三):柱状图柱体颜色渐变(每个柱体不同渐变色)

前提: 会简单的绘制柱状图主要内容: 渐变的主要使用在https://efe.baidu.com/blog/echarts-3.2.0/中有介绍到:itemStyle: { normal: { // 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,右,下,左,上(0,0,0,1)表示从正上开始向下渐变 ...

2019-08-28 16:25:54 15683 3

原创 SQLServer创建链接服务器

链接服务器的使用场景: 查询数据时既需要用到A机上数据库里的表又需要B机数据库里的表,就可以在A机数据库上建立链接服务器。这里使用SQL Server Management,点击链接服务器展开,右键选择新建链接服务器。之后确定即可。注意要添加本地服务器登录到远程服务器登录的映射,我之前没有添加,虽然能够查小量数据,但数据量一大就一直报错误:当然出现这个问题...

2019-08-28 10:38:52 27914 1

原创 Python:使用Tkinter绘制矩形

Python GUI编程python提供了多个图形开发界面的库,常用Python GUI库有: Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行...

2019-08-14 09:35:24 5561

原创 Python:蒙特卡洛方法模拟中奖问题

中奖问题游戏中,有一种宝箱,打开这个宝箱获得传奇武器的概率是20%,现在你打开5个这样的宝箱,获得传奇武器的概率是多少?在该问题中我们做这样一个转换:用区间[0,1)来模拟开宝箱中奖情况,则用在0-1之间均匀分布的随机数来表示我们开启宝箱的标志,如果随机数落在[0,0.2)之间代表中奖,否则不中奖,中奖概率仍然为20%。用代码实现这个模拟开宝箱的过程:#模拟开宝箱...

2019-08-13 15:34:37 657

原创 Python:蒙特卡罗方法模拟解决三门问题

蒙特卡罗方法与三门问题蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法。是一种统计学的方法、模拟方法,通过大量随机样本模拟问题,从而获得所要计算的值。三门问题:三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let's Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Mont...

2019-08-12 10:53:24 3787

原创 Echarts.js(二):多系列柱状图

多系列柱状图大部分与多系列折线图相似一、简单html布局简单的html如下:<!DOCTYPE html><html lang="en" dir="ltr"><head><meta charset="utf-8"><title>多系列柱状图</title></head><st...

2019-07-30 10:40:11 5323

原创 oracle:查看指定用户所使用的表空间

环境:oracle11gNavicat Premuim 11.2.7使用Navicat连接数据库:新建连接,以sys超级用户身份登录使用sqlplus登录时,输入密码格式为:密码 as sysdba使用Navicat连接如果出现配置无问题,但提示连接超时,可能是防火墙的原因,将防火墙关闭即可正常连接SELECT default_tablespac...

2019-07-17 20:32:16 3393

原创 ECharts(一):多系列折线图

echarts基本用法:一、引入echarts插件将下载好的echarts放置到自己项目的js文件夹中,在html中引入文件<script src="./js/jquery-3.1.1.js"></script><script src="./js/echarts.min.js"></script>简单的html如下:...

2019-07-16 23:10:42 2685 1

原创 Navicat for Mysql 触发器插入、更新、删除操作

部门表sector:sector_id sum_people 职工表staff:staff_id sector_id sector_id:部门ID sum_people:部门总人数 staff_id:职工ID需求:当职工表staff新增员工时,该员工所在部门总人数+1(sector表中sum_people+1) 当职工表staff更新员工所属部门时,该员工以...

2019-06-23 11:42:40 8139 1

原创 Javaweb基础:配置数据源连接数据库

JDBC2.0之后提供了使用连接池(connection pooling)和数据源(DataSource)技术访问数据库,使用数据源的好处是不用为每个HTTP请求创建一个连接对象,Servlet建立数据库连接、执行查询、处理结果集、请求结束关闭连接。建立连接比较费时,如果每次请求都需要建立连接,将增大请求的响应时间。而数据源事先建立若干连接对象,将之存放在数据库连接池中供数据访问组件共享;由数据库...

2019-06-04 00:32:26 6971 1

原创 解决eclipse的oxygen版本没有tomcat

因为实验需要,需要在eclipse创建Dynamic Web Project,使用的是oxygen版本,在新建项目时没有Dynamic Web Project选项。这是因为没有安装J2EE插件,或者可以选择重新下载个myeclipse。一、eclipse安装J2EE插件首先在eclipse中点击Help->About Eclipse查看eclipse相关信息,记下版本号然后在...

2019-05-31 23:43:25 1393

原创 微信小程序引入字体图标

微信小程序中使用字体图标需要将ttf文件编码为base64才能使用。网上查一般使用:https://transfonter.org/,进行在线转换,我在使用该网站时,无法成功上传文件,只能想别的办法。使用https://www.motobit.com/util/base64-decoder-encoder.asp该网站编码ttf文件一、准备好自己的字体图标库例如:https://ico...

2019-05-28 03:40:34 456 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除