- 博客(72)
- 资源 (5)
- 收藏
- 关注
原创 20. 有效的括号
给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。
2022-06-08 17:24:18
275
原创 记录elementui表格中的row-style使用
row-style属性绑定的值需定义在methods,不可定义在computed,否则无法获取row的值
2022-06-07 09:03:43
2267
原创 13. 罗马数字转整数
解法一:var romanToInt = function (s) { let res = 0; let i = 0 for (; i < s.length; i++) { let a = getValue(s.charAt(i)) let b = getValue(s.charAt(i+1)) if (a<b) { res-=a }else { re..
2022-05-24 17:13:11
97
原创 14. 最长公共前缀
/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function (strs) { if (strs.length == 0) { return "" } let ans = strs[0]; // 从strs的第二个字符串开始比较 for (let i = 1; i < strs.length; i++) { ...
2022-05-24 16:51:24
88
原创 记录docker failed to initialize docker desktop is shutting down解决办法
%appdata%\Docker%appdata%\Docker Desktop删除Appdata里的Docker和Docker Desktop
2022-05-01 08:46:37
2245
1
原创 管理员登录及token相关
1、前端登录表单部分 <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" status-icon > <el-form-item prop="userName">
2022-04-21 11:01:10
1698
原创 获取json文件内容
console.log(fileContent); // ArrayBuffer(124911) let fileBuffer = new Uint8Array(fileContent); console.log(fileBuffer); // Uint8Array(124911) let str = utf8Array2Str(fileBuffer); // json字符串 let res = JSON.parse(str); // json对象...
2022-04-18 14:39:19
485
原创 请求拦截、响应拦截和请求处理
1、创建axios实例const http = axios.create({ // baseURL: 'http://localhost:8085/', timeout: 1000 * 30, // 请求超时 withCredentials: true, // true:在跨域请求时,会携带用户凭证 false:在跨域请求时,不会携带用户凭证;返回的 response 里也会忽略 cookie headers: { 'Content-Type': 'application/j
2022-04-16 22:05:39
4502
原创 动态获取菜单和路由及路由守卫
1、组件注册// 开发环境不使用懒加载, 因为懒加载页面太多的话会造成webpack热更新太慢, 所以只有生产环境使用懒加载// const _import = require('./import-' + process.env.NODE_ENV)// 生产环境的为 file => () => import('@/views/' + file + '.vue')const _import = file => require('@/views/' + file + '.vue'.
2022-04-16 21:31:27
2593
4
原创 springboot+mybatis-plus+redis整合
1、创建springboot项目2、在pom.xml内添加依赖 <properties> <mybatis-plus.version>3.1.0</mybatis-plus.version> <redisson.version>3.10.6</redisson.version> </properties> <!-- 使用redisson集...
2022-04-15 17:10:42
2398
原创 验证码的获取与验证
前端vue部分:/** * 获取uuid */export function getUUID () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { return (c === 'x' ? (Math.random() * 16 | 0) : ('r&0x3' | '0x8')).toString(16) })}根据生成的uuid从后端获取验证码 crea
2022-04-15 15:15:18
7331
原创 jszip打包多层文件夹
let zip = new JSZip(); const img = zip.folder(FileName); const meshes = img.folder('meshes') meshes.file(`mesh.` + fileType, url, { base64: true }); zip.generateAsync({ type: 'blob', compression: 'DEFLATE', compressionOptions: { level: 9 } ...
2022-04-14 13:57:05
3176
4
原创 盒子水平垂直居中
1、flex布局 给其父盒子加上以下样式 display: flex; justify-content: center; align-items: center;2、绝对定位 给该盒子加上以下样式,如果是相对父盒子居中,给父盒子添加相对定位样式 position: absolute; left: 50%; top: 50%; transform: translate(-50%,...
2021-12-26 19:59:05
195
原创 响应式布局
响应式布局是指同一页面在不同屏幕尺寸下有不同的布局优点:面对不同分辨率设备灵活性强 能够快捷解决多设备显示适应问题缺点:仅适用布局、信息、框架并不复杂的部门类型网站 兼容各种设备工作量大,效率低下 代码累赘,会出现隐藏无用的元素,加载时间加长 其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果 一定程度上改变了网站原有的布局结构,会出现用户混淆的情况...
2021-12-26 19:49:02
194
原创 new操作符干了啥
创建一个新的空对象 让这个空对象的__proto__指向其构造函数的原型prototype 将创建的对象和this进行绑定,如果构造函数没有显式的返回值,隐式返回this对象
2021-12-20 12:07:51
199
原创 watch和computed
watch:一个数据影响多个数据,当监听的数据发生变化时都会执行回调进行后续操作。需要深度监听对象里的属性需要打开deep:truecomputed:多个数据影响一个数据,是计算属性,依赖其他属性,有缓存,只有它以来的属性发生变化才会重新计算在数据变化时执行异步或者开销大的操作时,使用watch...
2021-12-19 19:20:36
135
原创 Vue内置指令
v-once 只渲染一次,包括该元素或组件下的所有子节点,首次渲染后,不会再因数据变化重新渲染,视为静态内容 v-cloak 该指令保持在元素上直到关联实例结束编译--解决初始化慢导致页面闪动的最佳实践 v-bind 绑定属性,动态更新html元素上的属性 v-on 监听dom事件 v-html 相当于innerHTML v-text 相当于innerText v-model value和input的语法糖 v-if/v-
2021-12-19 18:55:31
103
原创 display、visibility和opacity
diplay:none visibility:hidden opacity:1 占位 不占 占 占 子元素是否继承 不会,父元素不存在,子元素也不会显示 会,可以通过visibility:visible来显示子元素 会,但不能设置子元素opacity:0来显示 事件绑定 在页面不存在了,无法触发 不会 可以触发 过渡动画 无效 无效 有效 ...
2021-12-19 18:38:36
115
原创 MVC和MVVM
MVC:Controller负责将Model的数据用View显示出来,即将Model的数据赋值给ViewMVVM:数据绑定:将数据转化为视图 DOM事件监听:将视图转化为数据区别:MVVM实现了View和Model的自动同步,当Model的属性发生变化时,不用手动操作DOM元素来改变View,改变Model的属性后,相对应的视图也会发生改变。 MVVM比MVC精简,简化了业务与界面的依赖,解决了数据频繁更新的问题,不需要用选择器操作DOM元素。在MVVM中,...
2021-12-19 14:42:41
324
原创 vue和jQuery的区别
jquery是使用选择器$选取dom对象,对其进行赋值取值事件绑定等操作,数据和界面是在一起的 jquery频繁操作dom,vue直接操作数据 vue支持双向绑定MVVM,vm能感知到view变化通知数据改变,反之model发生改变也会影响view vue支持组件化,提高了开发效率...
2021-12-19 10:41:28
1316
原创 组件的动态切换和组件缓存
组件动态切换<template> <div> <button @click="comName = 'UserName'">账号密码填写</button> <button @click="comName = 'UserInfo'">个人信息填写</button> <p>下main显示注册组件-动态切换</p> <div style="border: 1px solid
2021-12-19 08:38:48
357
原创 vue插槽
匿名插槽:当组件内一幅幅标签不确定时,在组件内使用<slot><slot/>占位,当使用组件在标签内放入什么内容,在组件内就会替换掉slot标签并显示,在slot标签内放置内容,就会作为默认显示内容显示子组件:<template> <div> <h1>子组件---演示组件插槽</h1> <slot></slot> </div></template>父
2021-12-17 19:04:23
234
原创 vue-router原理
vue-router通过hash和history两种方式实现路由hash模式在浏览器地址栏中会有一个#号分隔根路径和地址,#号后的地址改变时,不会导致浏览器向服务器发起请求,路由跳转时是无刷新的 用window.location.hash读取URL地址数据,监听hashchange事件history模式的地址和真实的地址是一样的,会向服务器发起请求,所以history模式需要后端支持 history采用html5的新特性;且提供了两个新方法:pushS...
2021-12-16 18:59:11
376
原创 前端面试一
$nextTick的使用 vue中的数据和dom渲染由于是异步的,要想dom结构随数据改变,都应放进this.$nextTick()的回调函数中。在视图更新之后会自动调用$nextTick的回调函数。 created()中使用方法时,dom还没有被渲染,所以,created()钩子函数进行DOM操作一定要放在this.$nextTick()的回调函数中。 this.$nextTick()起到一个等待数据的作用,将一些回...
2021-11-28 21:30:36
104
原创 Vue2---provide和inject
父组件有一个provide选项提供数据,后代组件有一个inject选项来使用这些数据父组件 // 给所有的后代组件提供数据 // 注意:不要滥用 provide: function () { return { articleId: this.articleId } },后代组件 inject: { articleId: { type: [Number, String, Object], default: null
2021-11-22 10:28:48
440
原创 生命周期--钩子函数
<template> <div> <p>学习生命周期 - 看控制台打印</p> <p id="myP">{{ msg }}</p> <ul id="myUL"> <li v-for="(val, index) in arr" :key="index">{{ val }}</li> </ul> <button @click="a.
2021-11-18 20:09:22
499
原创 移动端适配
将单位转换为rem一、使用 lib-flexible 动态设置 REM 基准值(html 标签的字体大小)1、安装npm i amfe-flexible2、main.js导入import 'amfe-flexible' 二、使用 postcss-pxtorem 将 px 转为 rem 1、安装npm install postcss-pxtorem -D 2、然后在项目...
2021-11-18 20:01:46
547
原创 sync修饰符
子组件<template> <div> <div>{{ count }}</div> <button @click="addFn">+1</button> </div></template><script>export default { props: { count: { type: Number } }, methods
2021-11-13 18:50:14
1041
原创 gittee公钥
ssh-keygen不是内部或外部命令,也不是可运行的程序或批处理文件。如果在系统变量变量那里添加路径解决不了问题,就在点开以下exe运行命令
2021-11-10 18:42:48
368
原创 VueX--states、getters、mutations、actions
App.vue<template> <div> <h1>一、state</h1> <div>(原始形式)state的count数据:{{ $store.state.count }}</div> <div>(计算属性)state的count数据:{{ count }}</div> <div>(辅助函数)state的count数据:{{ author }}<
2021-11-10 08:14:49
373
原创 vue组件&组件通信
一、组件的使用 1、全局-注册使用在入口文件main.js,new Vue之上注册import Pannel from 'vue组件路径'Vue.component('组件名', 组件对象) 组件名当标签使用:<组件名></组件名> 2、局部-注册使用<script>// 局部引入组件import Pannel from 'vue组件路径'...
2021-10-31 20:20:13
105
原创 Vue基础API
一、创建手脚架项目 1、安装全局包yarn global add @vue/cli 2、创建项目vue create 项目名 3、进入项目文件夹,启动服务器cd 项目名yarn serve二、插值表达式...
2021-10-29 16:20:26
139
原创 bind()用法
bind()方法创建一个新的函数,在bind()被调用时,这个新函数的this被指定为bind()的第一个参数,而其余参数将作为新函数的参数,供调用时使用。1、每隔一秒在控制台输出1-5for (var i = 1; i <= 5; i++) { setTimeout(console.log.bind(null, i), i * 1000);}...
2021-10-25 18:39:34
1130
原创 定义一个add()函数,得到以下效果
add(1)(2)(3).finish(); // 6 add(1, 2, 3)(4).finish(); // 10 add(1)(2)(3)(4, 5).finish(); // 15 add(2, 6)(1).finish(); // 9 var adding = add(1, 2)(3) setTim...
2021-10-20 21:06:05
1315
原创 错题笔记(前端)
1、创建对象的方式- 使用class关键字创建对象- 使用字面量创建对象- 使用构造函数创建对象- 使用Object构造函数创建对象2、类生成实例,是通过`new 类名(构造函数形参)`的方式来创建3、面向对象和面向过程面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。它的优点易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、...
2021-10-18 20:27:14
95
原创 js的隐式转换
在+ - * / 运算符里面:+拼接 字符串的话, 数字类型会被默认转换为字符串;- * / 这些符号的 字符串和数字拼接的话 就会把字符串隐式转换为数字进行计算;所以只有第一个是 返回的字符串类型, 其余的三种运算都是返回的数字类型;...
2021-10-17 20:00:33
111
原创 Nodejs
一、文件系统模块1、读取文件内容fs.readFile(读取文件路径,编码格式(可选),callback)//err错误信息 dataStr获取到的数据fs.readFile('./test/2.txt', 'utf8', (err, dataStr) => { if (err) { return console.log('读取失败' + err); } console.log(dataStr);})2、写入...
2021-10-16 21:36:28
825
企业项目实训i(2021年)-校内集中实训课程实训报告.docx
2021-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人