- 博客(220)
- 收藏
- 关注
原创 我的创作纪念日
可能虽然日常忙碌但你还在坚持创作、可能初心还在但博客已良久未更新。也许是立志成为一名专业 IT 作者、也许是记录一段刚实践的经验。《关于HTML5中得input表单,你所不知道的几点》还记得 2020 年 09 月 13 日吗?在这段时间里,相信你已经获得了更大的成长。在这平凡的一天,你赋予了它不平凡的意义。但在那一刻,你已在创作这趟旅程中出发。但创作这份心情,任何时刻你打开都新鲜。今天,是你成为创作者的第1024天。
2023-07-06 11:09:51 133
原创 koa使用socketio
服务端const Koa = require('koa');const Router = require('koa-router') // koa 路由中间件const app = new Koa();const router = new Router(); // 实例化路由const process = require('child_process');// 使用中间件,保证可跨域const CORS = require('./middleware/cors.js');const { de
2021-08-05 17:09:45 1230 2
原创 vue中的装饰器
Vue Property Decoratornpm i -S vue-property-decoratorUsageThere are several decorators and 1 function (Mixin):@Prop@PropSync@Model@ModelSync@Watch@Provide@Inject@ProvideReactive@InjectReactive@Emit@Ref@VModel@Component (provided by vue-cl
2021-06-15 20:21:25 561
原创 js中!(感叹号)的使用
export default class YourComponent extends Vue { @Prop(Number) readonly propA: number | undefined @Prop({ default: 'default value' }) readonly propB!: string @Prop([String, Boolean]) readonly propC: string | boolean | undefined}这个感叹号在这里是强制propB为st
2021-06-15 19:47:59 2155
原创 位运算的使用
~‘1.345’.indexOf(’.’)这是一个位运算,效果等同于xxx.indeOf(‘oooo’)!=== -1 ;位运算效率会高一些,而且写起来简单
2021-06-15 18:22:59 104
原创 ES6装饰器
1.类的装饰@testableclass MyTestableClass { // ...}function testable(target) { target.isTestable = true;}MyTestableClass.isTestable // true上面代码中,@testable就是一个装饰器。它修改了MyTestableClass这个类的行为,为它加上了静态属性isTestable。testable函数的参数target是MyTestableClass类本身。
2021-06-11 10:30:37 292 2
原创 less使用混入(mixin)使px转为rem
.px2rem(@name, @px){ @{name}: @px / 37.5px * 1rem;}.home{ .test{ background:red; .px2rem(width,20) }}
2021-06-10 14:49:49 1719
原创 如何让宿主机访问docker容器内的服务
1.比如我在docker内开了一个服务地址是localhost:7001如上图所示,这个服务的内容是hello world那么如何让宿主机也能访问到这个服务呢2.宿主机访问docker内服务目前网上大多数的方案都是更改docker容器的端口映射但是我在自己的机子上就是找不到这些文件=-=所以用如下方法,如果可以,最好自己修改端口映射如果想要不改变容器内容和配置的情况下更改端口映射只有先停止,然后将容器打包成镜像,然后在运行新的镜像的时候指定新的端口映射。#先停止容器docker
2021-06-10 12:50:08 9021
原创 docker的使用
1.在终端下载docker2.打开docker安装imagesdocker pull image-name3.启动镜像容器$ docker run -it centos /bin/bash参数说明:-i: 交互式操作。-t: 终端。centos: ubuntu 镜像。/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。要退出终端,直接输入 exit:注意,每次docker run后面直接跟image-name的都是不同的容
2021-06-10 09:46:22 111
原创 vue中设置代理解决跨域
编辑vue.config.js文件module.exports={ devServer:{ proxy:{ '/test':{ target:'http://localhost:7002', changeOrigin: true, secure: false, pathRewrite: { '^/test': ''
2021-06-09 15:48:30 116
原创 babelrc 和 babel.config.js区别
babelrc 只会影响本项目中的代码babel.config.js会影响整个项目中的代码,包含node_modules中的代码推荐使用babel.config.jsbabelrc{ "plugins": [ [ "@ks/babel-plugin-component", { "libraryName": "@ks/sharp-ui", "sty..
2021-06-09 10:50:49 1264
原创 vue中使用v-bind=“$attrs“进行多层组件的传值
有如下的嵌套关系<grandfather> <father> <grandson> </grandson> </father></grandfather>比如说在grandfather中传给了father一些propsgrandfather.vue<div> <father name="test" age="18" hobby="badminiton" grade="3".
2021-06-07 16:07:56 24014 6
原创 应用中的图片上传
前端这里采用的是将图片转为base64然后传到后端 const uploadFile=()=>{ var imageFileName=""; var imgURL=document.querySelector('#upload-file').files[0]; imageFileName=imgURL.name //图片预览部分 //var img=document.que
2021-05-28 16:54:36 102
原创 计网期末考试
CRC循环冗余码一般考试的时候会给出生成多项式和一个信息位1.确定除数如p(x)=1*x3+1*x2+0*x1+1*x0=>1101得到除数为11012.根据多项式p(x)的最高阶为信息位补0最高阶为3,所以在信息位后补三个0=>1010010003.让信息位补0与除数做异或运算得到余数 101001000 xor1 1101 res1 1110 //结果省去0依次借后面的位
2021-05-22 11:58:04 2009
原创 vue指令
vue2注册指令<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="vue.js"><
2021-05-19 14:39:26 92
原创 手写mini-vue之重新理解
introduce核心模块(core modules)Reactivity Module 有响应式对象发生改变的时候会重新调用render函数Compiler Module 获取HTML模板并编译成渲染函数(render function)Renderer Module -Render Phase(渲染阶段) 调用render函数生成Vnode -Mount Phase 调用VNode挂载到网页 -Patch Phase(补丁阶段也
2021-05-15 09:59:05 204 1
原创 axios源码学习
HTTP拦截器的实现拦截器分为请求拦截器和响应拦截器,其意思就是请求前做一些事情,响应前做一些事情axios.interceptors.request.use(function(config){ config.header.fieldName='xxx' //这里的config就是axios()中的对象 return config;})axios.intereptors.response.use(function(data){ data.data='hanldle'; return d
2021-05-13 16:36:55 160 1
原创 animate.css一些实现原理
首先是demo的创建如下,就可以像官网那样每次点击之后就执行一次动画了<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, init
2021-05-12 18:39:23 427
原创 解决出现双滚动条或body超出设备大小的办法
看是x轴还是y轴超出如果是x轴超出或者是x轴出现双滚动条overflow-x:unset;如果是y轴超出或者是y轴出现双滚动条overflow-y:unset;
2021-05-11 18:43:14 665
原创 跨域资源共享(cors)与预检请求
跨域资源共享的设置服务端//以下设置允许哪些域名跨域共享服务器的资源Access-Control-Allow-Origin:"*"//以下设置服务器允许cookie跨域Access-Control-Allow-Credentials:true需要注意的是,如果要发送Cookie,Access-Control-Allow-Origin就不能设为星号,必须指定明确的、与请求网页一致的域名。同时,Cookie依然遵循同源政策,只有用服务器域名设置的Cookie才会上传,其他域名的Cookie并
2021-05-10 20:35:36 424
原创 发布订阅模式
简写发布订阅模式var publisher={};//定义发布者publisher.subscribleList=[];//定义订阅者回调函数列表//增加订阅者的函数publisher.on=(fn)=>{ publisher.subscribleList.push(fn);}//发布消息的函数publisher.emit=function(){ for(const fn of this.subscribleList) { fn.apply(thi
2021-05-10 20:08:05 83
原创 数据库
T-SQL编程SELECT ESSN_汪, SUM(HOURS_汪) AS 小时总数,'勤奋水平'= CASE WHEN (SUM(HOURS_汪)>=400) THEN '非常勤奋' WHEN(SUM(HOURS_汪)>=200) THEN '勤奋' WHEN(SUM(HOURS_汪)<200) THEN '一般' WHEN SUM(HOURS_汪) IS NULL THEN '无记录'
2021-05-09 10:23:16 109
原创 egg中间件权限认证(cookie的跨域访问)
解决跨域携带cookie的问题前端设置//在每次请求的时候在加一个withCredential:trueaxios({ url:`${baseURL}/addArticle`, method:"POST", //一定要设置下面这个headers才可以跨域携带 headers:{ 'Access-Control-Allow-Origin':'http://localhost:8080/' }, withCredentials:true,})
2021-05-08 19:55:53 591
原创 git使用
配置ssh配置SSH使用步骤git initgit add filegit commit -m 'description'查看暂存区状态git status查看修改内容git diff 比较的是工作区文件与暂存区文件的区别(上次git add 的内容)git diff查看提交记录commit后面的是版本号,head是指向当前版本的一个指针,往前一个版本的指针是head^ ,两个是head^^ 多个就是head ~ xgit log//如果嫌输出信息太多,看得眼花缭
2021-05-03 20:36:58 472 1
原创 vue3中使用markdown编辑和展示
安装支持vue3版本的v-md-editor插件# 使用 npmnpm i @kangc/v-md-editor@next -S# 使用yarnyarn add @kangc/v-md-editor@next在vue3项目中引入import { creatApp } from 'vue';import VueMarkdownEditor from '@kangc/v-md-editor';import '@kangc/v-md-editor/lib/style/base-edit.
2021-04-26 11:39:00 1589 2
原创 vue3监听响应式对象
let book = reactive({ name: "js编程", price: 50, }); const changeBookName = () => { book.name = "c#"; }; watch(()=>book.name,()=>{//通过一个函数返回要监听的属性 console.log('书名改变了') })
2021-04-25 16:22:36 1137
原创 axios合并异步请求
onMounted(()=>{ //axios合并异步请求 axios.all([getTypeData(),getArticleList()]) .then(axios.spread((typeListRes,articleListRes)=>{ console.log(typeListRes.data,articleListRes.data); })) }) const typeLi.
2021-04-23 18:58:36 230
原创 vue中的动态路由
注意:如果提供了 path,params 会被忽略,上述例子中的 query 并不属于这种情况。取而代之的是下面例子的做法,你需要提供路由的 name 或手写完整的带有参数的 path:const userId = '123'router.push({ name: 'user', params: { userId }}) // -> /user/123router.push({ path: `/user/${userId}` }) // -> /user/123// 这里的 para.
2021-04-23 13:16:44 140
原创 使用text-overflow截断超长文字显示技巧
使用text-overflow截断超长文字显示技巧.giveMeEllipsis { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: N; /* 控制显示的行数 */ line-height: X; /* 对不支持浏览器的 */ max-height: X*N;
2021-04-22 13:41:34 147
原创 解决element-plus默认样式问题
比如我在页面中用了一个响应式的row,但是这个row的内容不能撑开整个浏览器,总是会有一部分的空白,看了代码才知道是element-plus默认的样式—解决办法,新建一个global.css文件,在main.ts中引入这个css文件,然后在每个组建的style标签中写上scoped属性,这样global.css文件中的属性就能覆盖掉element-plus的默认属性了...
2021-04-20 09:56:42 5144 3
原创 vue中的diff算法
function diff(n1,n2){ //n1=preSubTree n2=curSubTree //1.tag变化 if(n1.tag!==n2.tag) { n1.el.replaceWith(document.createElement(n2.tag)); } //2.props变化 else { //交换新旧节点的element const el=(n2.el=n1.el);/
2021-04-18 22:39:09 106
原创 vue中的虚拟dom转化为真实dom
1.创建虚拟节点Vnode的函数 createVNode()2.在render中创建虚拟节点VNodes 3.在createApp中把得到的虚拟节点挂载到根节点上去 首先是写一个创建虚拟dom的函数function createVNode(tag,props,children){ return {tag,props,children}}然后在根组件中render函数中创建虚拟domreturn createVNode("div",{ id:"app
2021-04-18 21:32:44 1392
原创 mini-vue vue3的一些原理
响应式的原理const {effect,reactive} =require('@vue/reactivity')//要做到a变化,依赖a的b也跟着变化//首先让a成为一个响应式的对象let a=reactive({ value:10})let b;//然后使用副作用//effect在初始化的时候会执行一次//当a发生变化的时候,effect也会执行一次//这个effect跟react的useEffect差不多effect(()=>{ b=a.value+10}
2021-04-15 19:40:09 300 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人