自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SOLID 原则是什么

SOLID原则是面向对象设计(Object-Oriented Design,OOD)中的五个基本原则,由Robert C. Martin提出。这些原则有助于开发人员构建易于管理和扩展的系统。SOLID原则指导开发者如何通过面向对象方式创建更灵活、可维护的应用程序,尽管主要应用于面向对象的编程,但在功能编程和其他编程范式中也能找到它们的影子。遵从SOLID原则可以帮助开发出更加清晰、易于理解和扩展的代码。

2024-05-09 16:36:05 455

原创 【声网】实现web端与uniapp微信小程序端音视频互动

利用声网实现音视频互动。

2024-04-26 18:26:55 2033

原创 【Git】如何在.gitignore忽略已经被上传到git上的文件,并且同步到线上

请记住,此操作只会从版本控制中移除文件,但不会在其他人的克隆或者拉取之后自动删除它们。命令来移除要忽略的文件的跟踪状态。这将使 Git 停止跟踪指定的文件,但不会将文件从工作目录中删除。文件来忽略那些已经被加入到 Git 中的文件,并且同步这些更改到线上的远程仓库。会强制本地分支匹配远程分支的当前状态,丢弃所有本地未提交的更改。确保他们在运行这个命令之前保存了工作目录中的任何重要更改,因为。首先,将你希望忽略的文件或者文件夹的路径添加到。以及上一步骤从缓存中移除的文件的更改。将这些更改推送到远程仓库。

2024-04-25 17:48:50 502

原创 【Git】Conventional Commit提交规范

在Git规范中,提交信息(commit message)通常按照某个约定来编写,以提供更多上下文,帮助团队成员理解每次提交的目的。一种广泛使用的约定是其中,<type>字段表明了提交的类别,用以告知团队这次提交改变了代码库的哪一部分或做了什么类型的更改。常见的typefeat:表示实现了一个新的特性(feature)。例如,添加了一个新的按钮或新功能。fix:表示修复了一个bug。例如,修复了导致程序崩溃的错误。docs:文档的改动。例如更新了README文件。style。

2024-01-25 18:21:34 1368

原创 Vue2配置在methods中的方法属性丢失

现在有这样一个需求:一个带有搜索建议的搜索框,搜索建议由后端数据请求回来。当搜索框失去焦点时,应该取消搜索,直接使用输入的内容。

2023-07-14 01:07:53 474

原创 【TypeScript】学习笔记(二)

【TypeScript】学习笔记(二)一、数组存放多个元素的集合最简单的方法是使用[类型+方括号]来表示数组:let myArr:number[] = [1,2,3];数组的项中不允许出现其他类型:let myArr:number[] = [1,2,3,'tom'];//不能将类型“string”分配给类型“number”。数组的一些方法也会根据数组定义时的类型进行限制:let myArr:number[] = [1,2,3];myArr.push('8');//类型“string”的

2022-09-05 11:47:08 503

原创 Promise的学习

*** 手写Promise} //添加 then 方法 Promise . prototype . then = function(onResolved , onRejected) {}

2022-08-14 01:04:40 321 1

原创 Dart学习——函数、类

在命令行输入即可运行dart文件以上是简化版的main函数完整版的main函数在命令行输入即可将参数传入main函数Dart通过var / const / final / dynamic 定义变量类型推导Dart数据类型1 数字类型 int double字符串和数字之间的转化2、布尔类型Boolen注意:Dart中不能判断非0即真,或者非空即真即不能使用if(非布尔类型)之类的代码3 字符串类型字符串定义方式。单、双、三引号都可以字符串的拼接4 集合类型Dart内置了三种集

2022-06-26 14:55:28 848

原创 【TypeScript】安装、基本类型、任意值Any、类型推断、联合类型、接口

【TypeScript】一、TypeScript的安装与编译1、安装通过npm install typescript -g进行安装TypeScript2、编译新建一个index.ts文件//index.tslet a:number = 1 在命令行输入tsc index.ts就可以在同级目录下编译出一个index.js文件。如果想在其他目录下输出文件:tsc --outFile 其他目录路径 index.ts二、TypeScript的基本类型1、布尔值boolean//index.

2022-05-06 09:56:27 328

原创 【uniapp小程序】使用wx.navigateTo去到订单页面,返回商品页面时,保存订单页面数据

#【uniapp小程序】使用wx.navigateTo去到订单页面,返回原页面,保留订单页面数据

2022-05-05 10:55:05 1285

转载 【uniapp小程序】苹果手机真机某个边的边框显示不全问题

【uniapp小程序】苹果手机真机某个边的边框显示不全问题解决方法原创微信小程序在苹果ios真机上如果有一排有边框的标签时,可能会出现个别边框显示不全的问题。当标签的父容器宽度(单位rpx)÷2的值为偶数或偶数.5的时候会出现该bug,那么我们可以推到出用200.52=401,3022=604等等都会重现这个bug,那么解决方案就来了:1)第一种方式是设置标签父容器的宽度到无bug值,即(奇数或奇数.5)2,例如2812rpx,281.5*2rpx可以解决2)第二种方式是补充像素单位:步骤1

2022-03-25 15:43:05 2216

原创 【uniapp小程序】安卓手机与苹果手机的getPhoneNumber拒绝授权返回错误信息不同

getPhoneNumber拒绝授权返回错误信息不同开发工具和ios是getPhoneNumber:fail user deny;安卓手机是getPhoneNumber:fail:user denygetPhoneNumber: function(e){ if(e.detail.errMsg === 'getPhoneNumber:ok'){ //确认授权的代码 }else if(e.detail.errMsg === 'getPhoneNumber:fail user deny' ||

2022-03-25 15:18:46 6478

原创 【taro +vue】初体验

安装npm i -g taro @tarojs/clitaro init myApp创建一个新的项目编译运行npm run dev:weapp会在根目录下打包一个dist文件,用开发者工具打开,可以实现热更新

2022-03-20 20:40:57 3254

原创 【uniapp小程序】分享功能onShareAppMessage函数传参数

【uniapp小程序】onShareAppMessage函数传参数小程序中分享功能需要在button组件中添加open-type:“share”,当点击button的时候就会调用onShareAppMessage函数。如果需要将按钮的参数传入给函数,使用:data-属性=值<button class="discount-right-share" size="mini" open-type="share" :data-coupon="item"> 转<br/>赠<br/&g

2022-03-09 15:34:50 14184

转载 【uniapp小程序】button组件去掉默认样式,转变为灵活的view

【uniapp小程序】button组件去掉默认样式参考:去掉默认样式在小程序中需要button来进行开发功能的实现。但是button的默认样式,并不是项目中需要的。html部分<button type="default" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber" v-if="!userPhone"> <div class="title">限时特价</div> <di

2022-03-09 14:36:28 2804 1

原创 【uniapp小程序】保存网络图片功能

uniapp保存网络图片在上一次的博客中虽然有图片弹窗,并且有保存按钮功能,但是保存的是本地的图片利用的就是 uni.saveImageToPhotosAlbum这个api,但是这个api无法保存后台转过来的网络图片一键跳转到该api地址所以需要通过uni.downloadFile进行将网络图片路径转化为临时文件路径。一键跳转到该api地址downLoadQRcode(){ const that = this uni.downloadFile({ url:this.tips,//网络图

2022-03-09 14:12:45 1713 2

原创 「CSS」利用flex设置字体大小不一的文字水平垂直居中,并且文字以字体底部对齐

如何实现以下情景:外部盒子先使用display:flex; justify-content: center; align-items: center; 将文字所在的内容盒子水平垂直居中于外部盒子中间,再将内容盒子display:flex; align-items: baseline; 将内容盒子里面的文字基于第一个文字的底部对齐。html部分<div class="box"> <div class="content"> <div class="num">8

2022-03-04 17:24:27 3481

原创 【uniapp小程序】实现二维码图片弹窗、保存图片功能

小程序uniapp需要实现一个点击某个按钮后,弹出二维码图片,并且有保存图片的功能。代码实现:html部分:使用uniapp中的unipopup组件进行弹窗<uni-popup ref="kefu" type="center" :mask-click="false" class="kefu"> <view class="popup"> <view class="icon-close"> <uni-icons type="close" size=

2022-02-26 16:43:18 7018 1

原创 Express框架知识——art-template模板、cookie、session

Express框架搭建一个服务器const express = require('express')const app = express();app.get('/',(request,respone)=>{ respone.end('hello express!!')})app.listen(3000,() => { console.log('Express web server is listen at 3000 port!');})获取post、ge

2021-11-20 16:37:38 996

原创 软考刷题错题集——2011年上半年上午题

!!1、在Word中建立新“文档1”,再选择“保存”命令,将(弹出“另存为”对话框)2、计算机启动时,可以通过存储在(ROM)中的引导程序引导操作系统3、寄存器间接寻址是指在(主存单元)中存取操作数4、某种SoundBlaster声卡属于8位声卡,这里的“8位”是指(声音最大量化位数是8)!!5、在IEEE754浮点表示法中,阶码采用(移码)表示6、某机器的字长为8,符号位站1位,数据位占7位,采用补码表示时的最小整数为(-27**)机器字长为8时,用7位表示数值,最大整数值位127(补码表示

2021-10-27 16:16:35 207

原创 软考刷题错题集——2010年上半年上午题

1、若要将文档中选定的文字移动到文档的另一个位置上,应该按下(鼠标左键),将选定的文字拖拽至该位置上!!2、选择题某班级学生《C++程序设计》成绩表如下图所示。若学生作业成绩、上机成绩和笔试成绩分别占综合成绩的15%、25%和60%,那么可先在E3单元格中输入( =B315%+C325%+D3*60%),再向垂直方向拖动填充柄至E10单元格,则可自动算出这些学生的综合成绩。若要将及格和不及格的人数统计结果显示在B11和E11单元格中,则应在B11和E11中分别填写(=COUNTIF(E3:E10,"&

2021-10-25 22:49:58 604

原创 node.js知识——模块化开发、Gulp、服务器

全局对象JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。后面看到所有的全局变量,例如 console,setTimeout 和 process 是 global 变量的成员。我们甚至可以向全局变量添加成员,使其在任何地

2021-10-24 14:59:38 1878

原创 程序员软考刷题笔记——软件开发和运行维护基础知识

1、 系统切换费用属于(系统运行维护费用)2、 文档设计的要点不包括(采用文档模板以减少以后随软件版本的升级而更新文档的工作量)文档设计的要点包括:1、编写文档前应先做规划2、要选择最合适表达某种算法的新式3、软件产品包括程序和文档,要保持一致性,文档上下文也要保持一致性,不能出现矛盾4、要保持良好的文档风格,其重要性等同于保持良好的程序设计风格3、(类)是面向对象中最基本的封装单元4、子类是基(超)类的特化面向对象中,基类和超类属于同一个概念,等价于面向对象继承关系中的父亲类,基类

2021-10-11 21:36:43 1133

原创 学习网络请求模块——axios

Vue.js知识axiosaxios基本使用axios发送并发请求axios实例axios功能特点:在浏览器中发送XMLHttpRequests请求在node.js中发送http请求支持Proimse API拦截请求和响应转换请求和响应数据axios基本使用首先需要安装axios,npm stall aniox --save安装完成后,需要在main.js中导入并简单使用axios(config)import { createApp } from 'vue'import Ap

2021-09-13 20:50:17 316 1

原创 Vue.js知识——Promise、vuex

Vue.js知识PromisePromise的all方法VuexPromisePromise是异步编程的一种解决方案。最常见的异步场景就是网络请求了。语法:new Promise((resolve,reject)=>( //异步请求操作 )).then(()=>{ // 成功时的数据操作 }).catch(()=>{ //失败时的数据操作})异步操作之后会有三种状态:pending:等待状态,比如正在进行网络请求,或者定时器没有到时间fulfill

2021-09-12 20:32:05 504

原创 Vue.js知识——路由(二)

Vue.js知识路由全局导航守卫全局前置守卫keep-aliveTabBar路由全局导航守卫导航:“导航”表示路由正在发生改变。vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。全局前置守卫当有这么一个需求,当页面进行跳转的时候,最上方的页面标题也会跟着修改。注册语法如下:const router = new VueRouter({ ... })router.beforeEach((to,

2021-09-10 15:19:22 139

原创 Vue.js知识——路由、箭头函数

Vue.js知识Vue CLI脚手架Vue CLI脚手架CLI是Command-Line Interface ,翻译为命令行界面,俗称脚手架vue-cli 可以快速搭建Vue开发环境以及对应的webpack配置

2021-09-06 21:06:04 1362 4

原创 Vue.js知识——webpack、loader、Vue的配置

Vue.js知识webpack的基本使用webpack.config.js配置和package.json配置loadercss文件处理webpack的基本使用webpack版本:3.6.0在文件下创建两个文件夹:src,源文件dist,存放打包之后的文件src文件夹下:写入两个文件main.js(入口文件)(CommonJS的导入方式)const {add,mul} = require("./aaa.js")console.log(add(20,30));console.log

2021-09-03 17:04:57 752

原创 Vue.js知识——slot插槽、ES6模块化的导入和导出

Vue.js知识slot 插槽具名插槽编译作用域作用域插槽ES6模块化的导入和导出export使用export defaultimport使用slot 插槽什么是slot?在生活中很多地方都有插槽,电脑的usb,排插当中的电源插槽。插槽的目的就是让原来的设备具有更多的扩展性,在vue中,组件的插槽也是为了让封装的组件更加具有扩展性,让使用者可以决定组件内部的一些内容到底展示了什么。代码演示:此时有一个组件cpn,在vue的实例中使用了4次,但是4次的末尾都要展示不同的标签,如何实现?源代码:&

2021-08-31 17:26:55 307

原创 Vue.js知识——父子组件的通信、父子组件的访问方式

Vue.js知识父子组件的通信通过props向子组件传递数据(properties)props驼峰标识子组件通过自定义事件向父组件发送消息父子组件的通信在开发中,往往一些数据确实需要从上层传递到下层:比如在一个页面中,我们从服务器请求到了很多的数据,其中一部分数据,并非是整个页面的大组件来展示,而是需要下面的子组件进行展示。这个个时候,并不会让子组件再次发送一个网络请求,而是直接让大组件将数据传递给小组件。如何进行父子组件间的通信?通过props向子组件传递数据(properties) c

2021-08-30 17:14:14 474

原创 Vue.js知识——v-model、组件

Vue.js知识v-modelv-model与radio结合使用v-model与checkbox结合使用v-model与select结合使用v-model的修饰符组件注册组件的基本步骤组件化的基本使用过程全局组件和局部组件全局组件局部组件父组件和子组件组件的语法糖模板组件抽离的写法(理解)为什么组件中的data必须是函数v-modelv-model可以用来实现表单元素和数据的双向绑定<body> <div id="app"> {{message}}

2021-08-27 23:00:26 814 1

原创 Vue.js知识—— v-if && v-else、v-show、v-for、购物车案例

Vue.js知识v-if && v-else用户登录切换的案例v-showv-for数组中哪些方法是响应式的购物车案例v-if && v-else<body> <div id="app"> <h2 v-if="isShow">{{message}}</h2> <h2 v-else>如果信息为false,就显示我</h2> </div> <script sr

2021-08-26 20:29:30 592

原创 Vue.js知识——指令2、计算属性、事件监听

Vue.js知识指令2v-bind计算属性事件监听v-on介绍v-on的参数问题v-on 修饰符指令2v-bindv-bind可以动态获取超链接地址 <div id="app"> <a v-bind:href="ulr">百度一下</a> </div> <script> let app = new Vue({ el:"#app", data:{ ulr:"

2021-08-25 20:48:13 141

原创 Vue.js知识——Vue基本用法(列表的展示,Mustache语法、指令)

Vue.jsVue的基本用法Vue的第一个代码列表的展示案例-计数器mustache语法指令v-oncev-htmlv-prev-cloakVue的基本用法Vue的第一个代码首先需要导入Vue:<script src="../vue.js"></script>在官方网站下载源代码,并导入scritp第二步创建对象:创建Vue对象的时候,传入了一些options:{ }{ }包含了el属性:该属性决定了这个Vue对象挂载到哪一个元素{ }包含了data属性:

2021-08-24 20:30:28 429

原创 JavaScript高级——数据、变量、内存相关问题、对象、函数

JavaScript高级数据、变量、内存相关问题对象函数IIFE原型和原型链原型原型链instanceof数据、变量、内存相关问题undefined与null的区别?undefined代表定义未赋值,null表示定义了也赋值了,值为null什么时候给变量赋值null?初始赋值,表明将要赋值为对象,结束前,让对象成为垃圾对象。严格区别变量类型与数据类型数据类型:- 基本数据类型:String、Nubmer、boolean、undefined、null    &n

2021-08-21 23:20:36 661 2

原创 JavaScript知识——事件、BOM简介

JavaScript知识事件事件的委派事件的绑定拖拽鼠标滚轮事件键盘事件BOM事件事件的委派事件的委派指的是将事件统一绑定给元素的共同的祖先元素,这样后代元素上的事件触发时,会一直冒泡到祖先元素,从而通过祖先的响应函来处理事件。例子:使得添加的超链接和原来的超链接都拥有单击响应事件。<script> window.onload = function () { var btn = document.getElementById("btn"); v

2021-08-17 19:42:34 348 2

原创 JavaScript知识——DOM增删改、操作内联样式

JavaScript知识DOM增删改操作内联样式获取元素的样式例子DOM增删改 <div> <ul id="city"> <li id="bj">北京</li> </ul> </div> <div class="btn"> <button id="btn1">创建一个“广州”节点,添加到#city下</button

2021-08-16 21:01:32 673

原创 JavaScript知识——数组、函数方法、Date对象、包装类、正则表达式、DOM简介

JavaScript知识数组数组的方法函数方法call()和apply()argumentsDate对象包装类数组创建数组var arr = new Array();arr[0] = 135;console.log(arr[0]);console.log(arr.length); #求数组的大小,最大索引+1//135//1使用字面量创建数组var arr = [1,2,3,4,5,6];var arr = new Array(10,2,3,30,5,6);var arr =

2021-08-15 17:34:54 348 3

原创 JavaScritp知识——this、工厂方法创建对象

JavaScritp知识this工厂方法创建对象构造函数原型对象prototypethis解析器在调用函数每次都会向函数内部传递一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,这个对象称之为函数执行的上下文对象。根据函数的调用方式不同,this会指向不同的对象以函数的形式调用,this永远都是windonw以方法的形式调用,this就是调用方法的那个对象函数方法调用:function fun(){ console.log(this);}fun();/

2021-08-12 23:16:57 147

转载 Python知识——进程间通信、生产者与消费者模型、线程

Python知识进程间通信IPC主进程跟子进程借助于队列通信子进程与子进程进行通信生产者与消费者模型线程开启线程的两种方法进程间通信IPC主进程跟子进程借助于队列通信from multiprocessing import Queue, Processdef producer(q): q.put('队列里面的信息') print('hello world')if __name__ == '__main__': q = Queue() p = Process(

2021-08-12 17:25:04 225

空空如也

空空如也

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

TA关注的人

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