- 博客(74)
- 收藏
- 关注
原创 HTTP协议理解及服务端与客户端的设计实现(1)
HTTP协议理解及服务端与客户端的设计实现(1)网络参考模型和 HTTP 协议TCP/IP 和 HTTP 的数据结构实现 HTTP 服务端和客户端HTTP 的传输数据的几种方式HTTP 常见响应码和响应头的组合使用收获:TCP/IP 协议、HTTP 协议和 Socket 有什么区别?如何基于 TCP/IP 实现一个 HTTP 服务端或者客户端?服务端 HTTP API 发生未处理异常时为什么不会崩溃?HTTP 在哪些情况下会请求超时?Cookie 和 Session 有什么区别和联系
2021-09-17 11:08:58
1403
原创 领域驱动设计(DDD)能给前端带来什么
领域驱动设计(DDD)能给前端带来什么?为什么需要DDD?软件发展过程:频繁变更带来软件质量的下降而这又是软件发展的规律导致的:软件是对真实世界的模拟,真实世界往往十分复杂人在认识真实世界的时候总有一个从简单到复杂的过程因此需求的变更是一种必然,并且总是由简单到复杂演变软件初期的业务逻辑非常清晰明了,慢慢变得越来越复杂可以看到需求的不断变更和迭代导致了项目变得越来越复杂,那么问题来了,项目复杂性提高的根本原因是需求变更引起的吗?那么在需求变更的过程中如何进行解耦和扩展呢?DDD发挥
2021-09-03 11:59:33
764
原创 双指针leetcode167 633
给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例 1:输入:numbers = [2,7,11,15], target =
2021-08-25 21:35:52
131
原创 前端科普系列(1):很有趣的一篇前端简史,作者有心了~
一、什么是前端回答这个问题之前,我想起了一道非常经典的前端面试题:“从输入URL到页面呈现在你面前到底发生了什么?”这个题目可以回答的很简单,但仔细思考,也可以回答的很深,这个过程涉及的东西很多。先看一张图:简单说就是1.DNS (Domain Name System) 解析start————————————————解析流程:①:电脑发出一个DNS请求到本地DNS服务器②:本地服务器查询缓存记录,有则直接返回结果。没有则向DNS根服务器进行查询。————————————————over
2021-08-20 13:47:55
327
原创 表格展开和收起
var dispathPatientTableheight = $("#tablepatientcontainer").height();document.getElementById("zhankaiorzhebie").style.display = (dispathPatientTableheight > 136?'':none);// $("#zhangkaiorzhedie").css('display',show=(dispathPatientTableheight > 136?
2021-08-13 17:49:05
140
原创 vw vh vm
1、vwcss3新单位,viewpoint width的缩写,视窗宽度,1vw等于视窗宽度的1%。举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12 px。2、vhcss3新单位,viewpoint height的缩写,视窗高度,1vh等于视窗高度的1%。举个例子:浏览器高度900px, 1 vh = 900px/100 = 9 px。3、vmcss3新单位,相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vm举个例子:浏览器高度900px
2021-08-13 17:39:33
239
原创 position:relative和position:absolute
position:relative相对定位如何定位?每个元素在页面的普通流中会“占有”一个位置,这个位置可以理解为默认值,而相对定位就是将元素偏离元素的默认位置,但普通流中依然保持着原有的默认位置。(在父级节点的content-box区定位,父级节点有文字的话,元素的默认位置则是紧随文字)不会改变行内元素的display属性。并没有脱离普通流,只是视觉上发生的偏移<body style='margin:0;padding:0;background:#BDD7EE;color:white;
2021-08-05 17:58:31
635
原创 flex布局使用技巧属性全解
flex常用属性flex-grow属性项目放大比例,默认为0,即如果存在剩余空间,也不放大,默认为0flex-shrink属性项目的缩小比例,默认为1,如果空间不足,该项目将缩小flex-basis属性分配多余空间之前,项目占据的主轴空间,默认是auto,即项目本来的大小auto 为表示项目本身的大小, 如果设置为 auto, 那么这三个盒子就会按照自己内容的多少来等比例的放大和缩小,flex属性默认 0 1 auto...
2021-08-05 17:15:16
101
原创 text-overflow: ellipsis; white-space: nowrap;文本超出部门省略号
一、仅定义text-overflow:ellipsis; 不能实现省略号效果。li {width:300px; line-height:25px; text-overflow:ellipsis;}二、定义text-overflow:ellipsis; white-space:nowrap; 同样不能实现省略号效果。li {width:300px; line-height:25px; text-overflow:ellipsis; white-space:nowrap;}三、同时应用: text-ov
2021-08-05 16:35:58
845
原创 IIS+VS2015+VsCode前端修改文件上传
找到修改的文件 右键checkout forEdit右键点击compare,即可查看修改内容右键修改文档的根路径 选择shelve pending
2021-08-05 16:34:47
131
原创 vscode快捷键
Ctrl+Enter 在下面插入行 Insert line belowCtrl+Shift+Enter 在上面插入行 Insert line aboveCtrl+Shift+\ 跳到匹配的括号 Jump to matching bracketCtrl+Shift+[ 折叠(折叠)区域 Fold (collapse) regionCtrl+Shift+] 展开(未折叠)区域 Unfold (uncollapse) regionHome 转到行首 Go to beginning of lineEnd
2021-08-04 17:57:32
146
原创 nz-form使用实例(ngModel、ngModelChange)
<div class="Fill bottom-form-container"> <div nz-row nzGutter="35"> <div nz-col nzSpan="13"> <div class="common-card-container" id="Simulation-Details"> <div class="common-card-title"&g
2021-08-04 17:37:41
1941
原创 css渐变动画效果
有趣的渐变边框动画效果效果:实现思路:每一个框一个div,每一个“框”分三部分组成,::before实现渐变边框(实际上是渐变背景),::after实现内部白色背景,最后div的其他子元素作为框内的文字内容显示。使用animation动画实现::before渐变背景旋转,即可模拟边框动画。问题:li内部子元素被::after覆盖显示不了的问题(::after的显示层级高于正常流元素)解决办法:给内部子元素加position: relative;z-index: 1;即可<div cla
2021-07-31 11:15:20
1308
原创 父子组件互相通信
父传子值及方法:首页home是父亲,header是子1.父亲的ts中加入//home.components.tsexport class HomeComponent implements OnInit { public title:string = '我是首页组件的标题' constructor() { } ngOnInit(): void { } run(){ console.log('我是父组件的方法') }}2.父组件中引入子组件时绑定属性//hom
2021-07-29 09:25:02
73
原创 获取Dom节点实现显示以及隐藏侧边栏(transform: translate(100%,0); transition: all 2s;)
<div class="content"> 内容区域 <button (click)="showSide()">显示侧边栏</button> <button (click)="hideSide()">隐藏侧边栏</button></div><aside id="aside"> 这是一个侧边栏</aside>import { Component, OnInit } from
2021-07-28 15:47:43
477
原创 viewchild获取DOM节点及父组件通过viewchild引用子组件方法
<!-- 1.给DOM命名 --><div #mybox> 我是一个dom节点</div>import { Component, OnInit, ViewChild } from '@angular/core';@Component({ selector: 'app-news', templateUrl: './news.component.html', styleUrls: ['./news.component.less']})exp
2021-07-28 15:30:48
223
原创 this指向问题(for each 和定时器中的this是指向windows的,如果要指向当前函数,可以使用箭头函数或者that)
for each 和定时器中的this是指向windows的,如果要指向当前函数,可以使用箭头函数或者that
2021-07-28 14:48:06
171
原创 数据缓存服务StorageService封装及使用
import { Injectable } from '@angular/core';@Injectable({ providedIn: 'root'})export class StorageService { constructor() { } get(key:any){ return JSON.parse(localStorage.getItem(key)||'0') } set(key:any,value:any){ localStorage.setI
2021-07-28 14:44:09
1315
原创 类型“string | null”的参数不能赋给类型“string”的参数
解决办法参考:https://blog.youkuaiyun.com/fred8/article/details/118603188
2021-07-28 14:27:45
1844
原创 Angular中的服务
Angular中的服务是独立于各个组件的,比如数据缓存功能,哪个组件需要使用,直接引用该服务即可。创建服务的命令:ng g service my-new-service//创建到指定目录下面ng g service services/storage在app.module引入并且配置服务import { NgModule } from '@angular/core';import { BrowserModule } from '@angular/platform-browser';impo
2021-07-28 14:03:11
411
原创 搜索框缓存数据(添加、删除、去重)
<div class="search"> <input type="text" [(ngModel)]="content"><button (click)="doSearch()">搜索</button><hr><ul > <li *ngFor="let item of historyList;let key=index">{{item}} <button (click)="deleteHist
2021-07-28 11:33:47
302
原创 less创建数组+判断数组中有无content值,如果无,则添加
public historyList:any[] = []; if(this.historyList.indexOf(this.content)==-1){ this.historyList.push(this.content); }
2021-07-28 10:40:02
228
原创 form表单练习
<h2>人员登记系统</h2><div class="people_list"> <ul> <li>姓名:<input type="text" [(ngModel)]="peopleInfo.username" class="form-input"></li> <li>性别: <input type="radio" value="1" na
2021-07-28 09:51:06
98
原创 <label for=“peopleInfo.sex“>女</label>作用
for 属性规定 label 与哪个表单元素绑定。作用是 在点击label 时 会自动将焦点移动到绑定的 元素上比如xy特别是使用 checkbox 时 如果没有绑定 的话 需要鼠标点中小方框 才可以选中 或不选, 绑定以后 点击 label 就可以改变checkbox 的值了...
2021-07-28 09:50:03
91
原创 NVM管理node版本
nvm激活:source $(brew --prefix nvm)/nvm.shnvm命令规则:https://blog.youkuaiyun.com/weixin_30338497/article/details/96934299?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.control&spm=1001.2101.3001.4242
2021-07-27 12:13:50
68
原创 布局变化(重要!flex布局灵活控制高度)
在一个盒子里上下两个盒子A和B,A的样式:height:70%;display:flex;flex-direction:column如果要撑满高度:display:flex;flex-direction:column;flex:1常用:margin:top...
2021-07-16 18:00:44
481
原创 :host 和::ng-deep
:host 和::ng-deep的区别https://blog.youkuaiyun.com/qq_36671474/article/details/88191973
2021-07-12 11:31:38
103
原创 Vue--电商项目day03
day031.展示修改用户的对话框<!--修改用户对话框--> <el-dialog title="修改用户" :visible.sync="editDialogVisible" width="50%"> <span>这是一段信息</span> <span slot="footer" class="dialog-footer"> <el-button @c
2020-08-12 23:45:07
280
原创 LeetCode刷题笔记17--动态规划Ⅰ
LeetCode刷题笔记17–动态规划Ⅰ动态规划标准流程:典型的动态规划,以下按照标准流程解题。状态定义:设动态规划列表 dpdp ,dp[i]dp[i] 代表前 ii 个房子在满足条件下的能偷窃到的最高金额。转移方程:设: 有 nn 个房子,前 nn 间能偷窃到的最高金额是 dp[n]dp[n] ,前 n-1n−1 间能偷窃到的最高金额是 dp[n-1]dp[n−1] ,此时向这些房子后加一间房,此房间价值为 numnum ;加一间房间后: 由于不能抢相邻的房子,意味着抢第 n+1n+1 间
2020-08-10 23:48:28
137
原创 VUE-电商项目day02
day021.主页布局利用element-ui中的container布局容器在element.js中import {Button,Form,FormItem,Input,Message,Container,Header,Aside,Main} from ‘element-ui’利用element-ui中的container布局容器在element.js中import {Button,Form,FormItem,Input,Message,Container,Header,Aside,Main} f
2020-08-10 22:30:19
470
原创 git创建库并保存码云
项目文件的cmd中git init ->git status -> git add . ->git commit -m “add files”->git status ->出现了on branch master ->复制马云中的git remote add origin https://gitee.com/datouqishi370/vue_shop.git -> -> git pull --rebase origin masterg
2020-08-09 23:14:36
92
原创 my.ini文件参数中文注释
https://blog.youkuaiyun.com/lienfeng6/article/details/78140404
2020-08-09 23:13:24
506
原创 await与async
await的意思就是等待。它后面可以跟一个表达式。如果是值(如字符串、数字、普通对象等等)的话,返回值就是本身的值。不过最常用的是后面跟一个promise对象。await会等待这个promise的状态由pending转为fulfilled或者rejected。在此期间它会阻塞,延迟执行await语句后面的语句。如果promise对象的结果是resolve,它会将resolve的值,作为await表达式的运算结果。...
2020-08-09 23:10:28
170
原创 VUE电商项目day01--登陆功能
day1:加载过后端程序,连接了服务器,测试过接口后开始项目:1.webstorm打开项目2.打开终端 git status 查看是否有On branch master3.创建login分支 git checkout -b login4.查看所有分支git branch5.运行vue ui 点击tasks然后开始serve 点击open app6.清理day01项目 清除App.vue、router下的index关于Home插件配置 删除Home、About7.创建login组件,
2020-08-09 23:09:47
138
原创 LeetCode刷题笔记(16)-BacktrackingⅣ
LeetCode刷题笔记(16)-BacktrackingⅣ背景今天结束了回溯,也结束了搜索这一板块,下一步就是动态规划啦。39、组合求和given candidate set [2, 3, 6, 7] and target 7,A solution set is:[[7],[2, 2, 3]]public List<List<Integer>> combinationSum(int[] candidates, int target) { List<Lis
2020-08-04 23:52:33
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人