- 博客(23)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 关于hexo yilia主题配置走过的坑
可以先看一下我的博客作为一个示例吧(https://vivian0430.github.io),然后这个主题的GitHub仓库链接(https://github.com/litten/hexo-theme-yilia),readme里面有教程,照着来下载就可以了。1.配置缺失模块从GitHub上面clone下来主题之后,点开左下角的全部文章,是没有办法直接显示文章目录的,点开的模块里也有解决的方法,需要配置一些代码。首先要调出cmd黑窗口,查看自己电脑里安装的node版本(npm会在安装node时自动
2020-08-14 14:55:36
480
原创 JavaScript高级程序设计(二)
基本类型和引用类型的值动态的属性可以给引用类型动态添加属性和方法var person = new Object();person.name = "Jhon";alert(person.name); // Jhon复制变量值基本类型var num1 = 5;var num2 = num1;将num2的值复制给num1,num1和num2完全独立,此后可以参与任何操作而不会相互影响引用类型浅拷贝(复制的实际上是指针,指针指向存储在堆内存中的一个对象,两个变量实际上引用
2020-09-09 18:15:58
261
原创 JavaScript数据类型和类型检测
JavaScript数据类型JavaScript数据类型主要分为两大类:1.基本数据类型:字符串(String),数字(Number),布尔(Boolean),空(Null),未定义(Undefined),(Symbol)注:Symbol 是 ES6 引入的一种新的原始数据类型,表示独一无二的值。2.复杂数据类型 (引用数据类型):对象(Object)基本类型String&Numbervar x; // x 为 undefinedvar x = 1;
2020-08-26 10:02:01
249
原创 创建函数的方式和区别
###函数声明function add(a,b){return a+b;}add(1,2); //3存在函数提升,在js中最先执行###函数表达式####命名函数var add = function(a,b){return a+b;}add(1,2); //3不存在函数提升,等到解析器解析到它时才会执行。因为这是一个命名函数,js中有变量提升和函数提升,命名函数相当于把函数当做一个值赋给add这个变量,那么此时做的提升应该是:var add;add = function(
2020-08-26 10:01:13
360
原创 Node.js - Express框架的学习和基础使用
Express.js官网:http://www.expressjs.com.cn/,是基于Node.js平台,快速开放极简的Web开发框架。学习参考网址:http://www.runoob.com/nodejs/nodejs-express-framework.html(更多具体的实例有助于快速学习这个框架)传统node.js缺点:路由不方便制作,尤其是正则表达式路由静态资源服务不方便页面呈递不方便,没有模板引擎(Express通过向模板传递参数来动态渲染 HTML 页面)环境配
2020-08-26 09:59:23
188
原创 ES6的新特性let和const
let-块级作用域1.ES5中声明变量用var,ES6中用let声明变量,const声明常量。2.在ES5中变量的作用域分为全局作用域和局部作用域,但是在ES6中新增了块级作用域。let的作用域是在声明变量最近的一对大括号内,var声明变量时是将变量添加到window下,而let不是。if(true){ let i = 100; console.warn(i); //100 } console.log(i); //undefined if(true){
2020-08-26 09:58:00
193
原创 Ant Design Vue的汉化
引入依赖import zhCN from "ant-design-vue/lib/locale-provider/zh_CN"; // 汉化export default { data () { zhCN, }}标签包裹需要汉化的组件<a-locale-provider :locale="zhCN"> <a-pagination size="small" :total="50" showSizeChanger showQuickJumper />.
2020-08-26 09:56:55
608
原创 正则验证-正则表达式集
验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?[1-9][0-9]*$ 验证非零的负整数:^\-[1-9][0-9]*$ 验证非负整数(正整数 + 0) ^\d+$ 验证非正整
2020-08-26 09:55:59
474
原创 解决npm install报错Error: Can‘t find Python executable “python“, you can set the PYTHON env variable
npm install时报错:Error: Can't find Python executable "python", you can set the PYTHON env variable问题产生原因:缺少python环境解决方法:安装node-gyp$ npm install -g node-gyp安装windows-build-tools(run as Administrator)//管理员身份打开命令行窗口npm install --global --productio
2020-08-26 09:53:53
1283
原创 封装组件的注意事项
####数据从父组件传入props属性中添加验证规则:props: { length: { type: [String], default: 3 }}通过props传入的参数不建议对其进行操作,会同时修改父组件中的数据。直接赋值不能解除双向绑定let data = JSON.parse(JSON.stringify(this.data))####父组件中处理事件处理事件的方法尽量写在父组件中,以保证通用组件中的数据不被污染。####不要依赖vuex传参尽量使用
2020-08-21 11:35:26
1054
原创 win8 win10系统安装msi文件方法
1.win+R,在运行框中输入"gpedit.msc",在“计算机配置/管理模板/windows组件/windows Installer"和“用户配置/管理模板/windows组件/windows Installer”,找到"始终以提升的权限进行安装”,双击改为"已启用",2.win+x,选择"命令提示符(管理员)"3.在命令提示符窗口中输入: msiexec /package “你的安装文件的全路径”例:d盘下的a.msi msiexec /package “d:\a.m
2020-08-21 11:35:06
1488
原创 vue-在table组件的render中添加事件
<template><div> <a-table :columns="columns" /></div></template><script>export default { data() { columns:[ { title: '操作', align: 'center', dataIndex: 'action',
2020-08-20 13:29:36
1925
原创 tree组件设置defaultExpandAll无效
解决方法:标签内添加v-if<a-tree v-if="tree.length" :default-expand-all="defaultExpandAll" multiple :selected-keys="selectedKeys" :checked-keys="checkedKeys" :tree-data="tree" :check-strictly="true" @select="onSelect" @check="onCheck" @rightCl
2020-08-20 12:33:46
670
原创 父组件点击触发子组件的事件
点击父组件中的button调用子组件的事件,可用于父子组件的传值实时更新。父组件代码:<template><button @click="handleChange"></button><child ref="child"></child></template><script>import child from "子组件相对父组件路径"export default { components: { c
2020-08-20 12:33:10
1221
原创 前端面试题-HTML5新特性
标签语义化header,footer,nav,section,article,aside,diallog等。好处:结构清晰,易于阅读,可维护性更高,有利于搜索引擎的搜索(SEO的优化)。音频和视频标签audio,video(source标签定义type属性)属性:src(音频或视频链接),width,height,controls(显示控件)表单input新增输入类型:date,color,month,email,tel,url等新增表单元素:keygen(公钥私钥),datalist,p.
2020-08-20 12:32:12
508
原创 JavaSctipt高级程序设计读书笔记(一)
JavaScript简史表单验证,value需要发送到服务器端判断JavaScript组成核心:ECMAScript(ECMA-262)文档对象模型:DOM浏览器对象模型:BOMJavaScript语言特性单线程(异步实现并发)解释性事件驱动面向对象弱类型JavaScript在HTML中的使用嵌入脚本:浏览器会认为是结束标签,发生编译错误外部脚本:通过async:异步下载脚本,立即下载脚本,只对外部脚本文件有效(不能保证脚本的执行顺序)charset:通过sr
2020-08-20 12:28:41
172
原创 提高代码质量 - 敏捷软件开发读书笔记
第七章什么是敏捷设计干净,简单,灵活,独立,易于理解,结构清晰,可读性强腐化软件的气味“牵一发而动全身”,很难对系统进行改动,对一个地方的改动会引起系统其他地方的改动对系统的改动会导致和改动概念无关的地方出现问题不能抽离出可重用的部分做正确的事情比错误的事情要困难不必要的复杂性:设计中不包含具有任何直接好处的基础结构不必要的重复很难阅读,理解,不能清晰地表现意图设计原则单一职责原则(SRP)只做一件事,完成一个功能,只有一个变化的方向维度一个类,一个模块,一个函数,一个组件
2020-08-20 12:27:48
133
原创 Clean Code小结
使用有准确意义的变量名在变量值不会改变时使用const声明一个常量对同一类型的变量使用相同的词汇使用可搜索的名称(用var声明全局的大写变量)使用解释型的变量bad:const cityStateRegex = /^(.+)[,\\s]+(.+?)\s*(\d{5})?$/;saveCityState(cityStateRegex.match(cityStateRegex)[1], cityStateRegex.match(cityStateRegex)[2]);g..
2020-08-20 12:26:43
198
原创 HTTP缓存小记
缓存类型:(私有缓存与共享(代理)缓存)浏览器缓存:私有缓存localStorage;sessionStorage;cookies;indexedDB;WebSQL;http缓存;DNS缓存:域名解析返回了正确的IP,系统会临时把这个返回结果存储起来;服务器缓存:CDN缓存;反向代理缓存;负载均衡器;网关缓存;数据库缓存:在业务服务器和数据库之间增加缓存服务器redis;数据库把数据临时存储在数据库的一个位置,再次发起相同请求时直接返回对应数据,不用对数据库进行重新查询;
2020-08-20 12:25:01
117
原创 HTTP协议1.1
打开chrome的调试面板,切换到network面板,搞清楚该页上所有的显示项、菜单、弹窗等下级功能的含义什么是TTFB?TTFB包含了哪些部分?Time to first byte,Timing里面的waiting,从http请求发送到服务器接收第一个字节的时间花费。包含了TCP连接时间,http请求发送时间和服务器接收到第一个字节的时间。2. network面板里看到一个请求,怎么判断这个请求真的发送到了服务器那里?根据状态码来看,502和504是没有发送到服务器,304从浏览器读取缓存。
2020-08-20 12:23:14
397
原创 关于github的基本使用
github是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名github。github于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。1.环境配置(git node npm)首先我们需要
2020-08-14 15:08:15
123
原创 提高代码质量 - 代码整洁之道读书笔记
第一章什么是整洁代码没有重复的代码利于后期维护高内聚,低耦合包含尽量少的实体,如类,方法,函数能通过所有的测试第二章类,函数,参数以及目录文件的命名规则(做有意义的命名)做有意义的区分以数字命名是依义命名的对立面,如item1,item2…根据参数的含义命名;不要使用含义相近的函数命名,如getUserInfo,getUser等意义含混的命名;使用可以读的出来的单词(英语单词不要使用自造词)使用可搜索的名称(用var声明全局的大写变量)避免使用编码避免思维映射(使用读
2020-08-13 09:54:49
131
http缓存.pptx
2020-08-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人