自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人Blog

【代码】个人Blog。

2023-03-21 17:07:53 174 1

原创 前端面试题

1.闭包闭包:定义 当一个函数的返回值是另外一个函数,而返回的函数如果调用了父函数的内部变量,且返回的那个函数在外部被执行,就产生了闭包.闭包的三个特性1:函数套函数2:内部函数可以直接访问外部函数的内部变量或参数3:变量或参数不会被垃圾回收机制回收闭包的优点:1:变量长期驻扎在内存中2:避免全局变量的污染3:私有成员的存在闭包的缺点常驻内存 增大内存的使用量 使用不当会造成内存的泄露.调用方式://1:直接调用a()()//内部函数的执行//2:通过赋值在调用var f =

2020-12-15 17:04:18 12146 1

原创 vue 页面卡顿(数据量大)

Vue 卡顿优化

2023-03-08 10:48:53 2681

原创 React router6路由封装

react router6 封装

2023-03-07 11:26:02 416

原创 NameError: name ‘_mysql‘ is not defined

NameError: name ‘_mysql‘ is not defined

2023-02-02 11:28:45 8307

原创 Vue js IP批量格式化

vue js IP批量格式化

2023-01-09 14:36:00 1445

原创 jenkins docker 部署 前端

Jenkins docker ssh

2022-11-07 10:49:58 2032

原创 js 通过id和pid 遍历树结构

function toTree(node){ node.forEach(function(it){ delete it.children; }) // 定义map/ var map = {}; // 这里可以重构数据类型,放回字段值 node.forEach(function(it){ map[it.id]=it; }) // 定义返回集合 var val=[]; node.forEach(function(it){ var parent = map[it.pid];

2022-05-19 12:24:14 1900

原创 python 爬虫(头像)

import reimport osimport requestsglobal ii = 0def get_one_page(url): response = requests.get(url) response.encoding = 'utf-8' html = response.text return htmldef get_urls(html): pattern = re.compile('href="(/touxiang/qinglv/.

2022-04-20 16:12:23 1482

原创 python 爬虫(表情包)

引入模块import requests //用于请求网页import re //正则表达式,用于解析筛选网页中的信息要爬的网址headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0' }response = requests.get('https://qq.yh31.com/zjbq/',headers=headers) .

2022-04-20 15:32:26 1552

原创 react页面滚动监控(hooks,componentDidMount)

componentDidMount声明周期版本import React, { Component } from 'react'interface Props {}interface State {}export default class index extends Component<Props, State> { state = {} render() { return ( <div>

2022-03-29 10:59:28 3108

原创 Django 邮件发送

settings# 邮箱配置EMAIL_HOST = 'smtp.qq.com'EMAIL_PORT = 25 #发件箱的smtp服务器端口EMAIL_HOST_USER = 'xxx@qq.com' # 你的 QQ 账号EMAIL_HOST_PASSWORD = '秘钥'EMAIL_USE_TLS = True # 这里必须是 True,否则发送不成功EMAIL_FROM = 'xxx@qq.com' # 你的 QQ 账号view.py email_title = '后台管理系统'

2022-03-23 14:45:50 2122

原创 python 钉钉机器人推送消息

timestamp = str(round(time.time() * 1000)) secret = 'this is secret' secret_enc = secret.encode('utf-8') string_to_sign = '{}\n{}'.format(timestamp, secret) string_to_sign_enc = string_to_sign.encode('utf-8') hmac_code = hmac.new(secret

2022-03-23 14:42:19 2781

原创 react 封装API

http.js/** * 网络请求配置 */import axios from "axios";axios.defaults.timeout = 100000;axios.defaults.baseURL = "http://127.0.0.1:8000/";/** * http request 拦截器 */axios.interceptors.request.use( (config) => { config.data = JSON.stringify(confi

2022-03-04 16:29:03 2148

原创 Django JWT token 登录注册

setting.py INSTALLED_APPS = [ ... 'rest_framework', 'rest_framework.authtoken', 'corsheaders', # 添加 django-cors-headers 使其可以进行 cors 跨域 'app01',...]MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.s

2022-02-24 11:28:29 1700

原创 Django 分页 (PageNumberPagination)

传参 按照参数分页 不传返回全部核心代码:from rest_framework.pagination import PageNumberPagination# 分页(局部):自定义分页器 局部class PageNum(PageNumberPagination): # 查询字符串中代表每页返回数据数量的参数名, 默认值: None page_size_query_param = 'page_size' # 查询字符串中代表页码的参数名, 有默认值: page ..

2022-02-24 11:20:19 1954

原创 python Django增删改查 快速体验

先创建个app子级python python startapp app01然后创建数据模型app01下的modules.py文件from django.db import models# Create your models here.class UserInfo(models.Model): name=models.CharField(max_length=32) password=models.CharField(max_length=12) age=m...

2022-02-15 15:33:17 1980

原创 CSS gird布局

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>D.

2022-02-09 09:14:25 1354

原创 VUE动态表单回调表单验证自动触发问题

做表单回调 默认触发表单验证问题解决方法:方法一、this.$nextTick(() => { this.$refs["firewall_nat"].clearValidate(); })方法二、 this.$refs["firewall_nat"].clearValidate();

2021-12-27 14:41:08 1814

原创 vue ant 分页器问题

如图,10/page 需要引入import zhCN from “ant-design-vue/es/locale-provider/zh_CN”;然后在data里面声明下<a-config-provider :locale="zhCN"> </a-config-provider>用这个标签把 table 包起来 就可以了

2021-12-07 10:46:53 13004

原创 HTML媒体查询(响应式)快速上手Demo

<meta name="viewport" content="width=device-width, initial-scale=1.0">首页代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">..

2021-12-01 10:24:27 12835

原创 css动态渐变色

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>D.

2021-11-30 10:59:26 12978

原创 vue word 转换html渲染页面(mammoth)

用到的插件mammoth安装npm install --save mammothtip:只能预览.docx文件(只能转换.docx文档,转换过程中复杂样式被忽,居中、首行缩进等)完整代码<template> <div class="word-wrap"> <div id="wordView" v-html="wordText" /> </div></template><script>// docx文

2021-11-29 15:16:28 7213 7

原创 VUE页面刷新(不闪烁)

用计算属性出现了 禁用下 更新数据情况下 还是选中然后 用到了刷新页面 但是其他刷新都是闪烁页面代码如下:首先在App里面写下如下代码:<template> <div id="app"> <router-view v-if="isRouterAlive"></router-view> </div></template><script> export default { .

2021-11-04 10:58:54 13573 1

原创 vue快速打包(优化)

vue.config.jsconst path = require("path");module.exports = { // 部署应用包时的基本 URL,用法和 webpack 本身的 output.publicPath 一致 publicPath: "./", // 输出文件目录 outputDir: "dist", // eslint-loader 是否在保存的时候检查 lintOnSave: true, // 是否使用包含运行时编译器的 Vue 构建版本 run

2021-10-19 15:44:41 13016

原创 前端rem.js

function rem(){ document.documentElement.style.fontSize=document.documentElement.clientWidth / 10.8 + 'px';}rem();window.onresize = rem;main引入 单位换成rem

2021-10-19 10:14:51 11972

原创 uniapp退出程序

最近在开发一个数据可视化项目 微应用 写到了退出记录下// 安卓退出appplus.runtime.quit();h5的话 那就返回两次退出吧

2021-09-02 19:36:58 12496

原创 关于uniapp父组件传参到子组件 渲染并且绑定数据

通过在外面套一层form 并绑定form表单 然后 绑定v-model='form[item.model]':value="form[item.model]"双向绑定的数据是从父组件传参过来<input @keyup='add(item)' :placeholder="item.palcehoder" style="" type="text" v-model='form[item.model]' :value="form[item.model]" />...

2021-09-02 19:15:52 12435

原创 React 快速入门

首先下载两个包npm i react react-dom<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=

2021-07-19 22:31:16 578

原创 双向绑定原理

采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。当把一个普通的 JavaScript 对象传给 Vue 作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转化为 getter/setter,用户看不到getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。1、实现一个数据监听器

2021-07-09 14:03:27 11927

原创 HTML是如何渲染的(回流、重绘)

1.网络请求2.页面渲染解析HTML文件,构建DOM树解析CSS文件,构建CSSOM树将DOM树和CSSOM树合并,生成渲染树计算渲染树的布局将布局渲染到屏幕上什么是回流当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(reflow)。每个页面至少需要一次回流,就是在页面第一次加载的时候,这时候是一定会发生回流的,因为要构建render tree。在回流的时候,浏览器会使渲染树中受到影响的部分失效,并重新构造这部分渲染树,完成回

2021-06-25 14:50:29 12306

原创 双向绑定原理(个人理解)

原文章:https://segmentfault.com/a/1190000006599500数据劫持: vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。observe的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化。。实现Watcher

2021-06-25 14:24:59 12058

原创 微信小程序上拉刷新数据

如图 把获取的数据进行裁剪 最后push到新的数组中,使用scorll-view 实现上拉刷新效果let a=this.data.list.splice(0,this.data.list.length+1) 每次更新一条

2021-03-17 19:47:07 639 1

原创 Vue之性能优化

一.源码优化1、代码模块化,咱们可以把很多常用的地方封装成单独的组件,在需要用到的地方引用,而不是写过多重复的代码,每一个组件都要明确含义,复用性越高越好,可配置型越强越好,包括咱们的css也可以通过less和sass的自定义css变量来减少重复代码。2、for循环设置key值,在用v-for进行数据遍历渲染的时候,为每一项都设置唯一的key值,为了让Vue内部核心代码能更快地找到该条数据,当旧值和新值去对比的时候,可以更快的定位到diff。3、Vue路由设置成懒加载,当首屏渲染的时候,能够加快渲染速

2021-01-19 19:38:01 576 1

原创 Promise使用能解决的问题,async的使用

Promise 是异步编程的一种解决方案: 从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。 promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行。一般来说我们会碰到的回调嵌套都不会很多,一般就一到两级,但是某些情况下,回调嵌套很多时,代码就会非常繁琐,会给我们的编程带来很多的麻烦,这种情况俗称——回调地狱。pro

2021-01-16 19:16:51 11995

原创 根据设计图设计rem比例

什么是remrem是相对长度单位。相对于根元素(即html元素)font-size计算值的倍数的一个css单位,也就是我们前端常说的适配单位rem。因为rem的特性相对长度单位,常被用来做移动适配,pc端页面不推荐使用rem。首先,为了计算方便,一般的话我们建议 1rem = 100px(设计稿px),要换算这样的比例需要设置html对应的fontSize,计算规则如下:屏幕的宽度 / 设计稿的宽度 * 基本宽度= fontSize如果基本宽度是100,那么 1rem = 100px(设计稿

2021-01-14 18:47:49 13463 1

原创 js单线程,事件循环,微任务宏任务

什么是宏任务和微任务宏任务包括:setTimeout setInterval Ajax DOM事件 微任务:Promise async/await微任务比宏任务的执行时间要早异步和单线程异步和单线程是相辅相成的,js是一门单线程脚本语言,所以需要异步来辅助异步和同步的区别:异步不会阻塞程序的执行,同步会阻塞程序的执行前端使用异步的场景:定时任务:setTimeout,setInverval网络请求:ajax请求,动态加载事件绑定任务列队和event loop(事件循环)

2021-01-14 18:43:36 11923 1

原创 深拷贝浅拷贝,原型,类型校验,递归深拷贝

1.prototype每个函数都有一个prototype属性,被称为显示原型2.__proto__每个实例对象都会有__proto__属性,其被称为隐式原型每一个实例对象的隐式原型__proto__属性指向自身构造函数的显示原型prototype3.constructor每个prototype原型都有一个constructor属性,指向它关联的构造函数。4.原型链获取对象属性时,如果对象本身没有这个属性,那就会去他的原型__proto__上去找,如果还查不到,就去原型的原型,一直找到最顶

2021-01-13 20:02:03 11933 1

原创 JavaScript递归深拷贝

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Doc

2021-01-13 19:46:43 645

原创 JavaScript类型校验

一、typeof [value]用途:检测数据类型的运算符;细节点:特点:typeof检测出的结果都是小写字符串形式,包含对应的数据类型,所以typeof typeof []结果就是typeof “object”==》“string”;**特点:NaN/Infinity都是数字类型,检测结果正常是 “number”;弊端:typeof null的结果是"object"(这是浏览器的bug,因为所有值在计算中都是二进制编码存储,浏览器默认把前三位是000的当做对象,null的二进制编码前三位是0

2021-01-13 19:45:07 12135 1

空空如也

空空如也

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

TA关注的人

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