GradientsWebGradients如果你还在纠结颜色的搭配,以及渐变效果看起来很差不妨尝试下gradients,让颜色搭配变得更加简单起来。EffectsGetWaves这个网站可以轻松地的设计创建SVG波浪。只需选择方向和颜色,就可生成代码,这可以帮助我们在创建着陆页时分离设计。AcademyHype4 Academy 一个生成玻璃效果的工具,可以让你的元素呈现半透明的外观。如果你的背景
初始化蓝牙使用蓝牙之前,首先要先初始化蓝牙(openBluetoothAdapter),之后才能调用蓝牙的各种api。初始化状态分为两种: 初始化成功:这时可以去搜索蓝牙设备(startBluetoothDevicesDiscovery)。 初始化失败:这个时候需要提示用户打开蓝牙,同时监听蓝牙的状态(onBluetoothAdapterStateChange),当蓝牙打开时,去搜索设备。 op
一、父组件给子组件传值:prop1、父组件部分:在调用子组件的时候,使用 v-bind 将 msg 的值绑定到子组件上:parentMsg=“msg”<child-component :parentMsg="msg"></child-component>//引入子组件 import childComponent form '@component/childComponen
Promise 对象含义: Promise是异步编程的一种解决方案,优点: 相比传统回调函数和事件更加合理和优雅,Promise是链式编程,有效的解决了令人头痛的回调地狱问题,Promise的结果有成功和失败两种状态,只有异步操作的结果,可以决定当前是哪一种状态,外界的任何操作都无法改变这个状态基本用法: //ES6 规定,Promise对象是一个构造函数,用来生成Promise实例。
配置操作全局配置对全局用户的所有仓库有效(最常用) git config --global user.name '你的名字' git config --global user.email '你的邮箱' 对当前仓库用户有效(不常用) git config --local user.name '你的名字' git config --local user.email '你的邮箱' 对系统所有用户
传统解决方案通常通过比较元素的 scrollWidth 与 clientWidth 来判断文本是否被截断。此外,我们可以使用 Range 的方式更精确地判断文本是否被截断。overflow: hidden 在布局上会将文本进行截断,但是双击全选复制的时候,可以复制到全部的内容。因此我们可以基于此特性,通过 浏览器提供的 Range api 获取 文本的宽度/高度进行判断。const app = d
前言字典即 hash 表是很多语言都有的数据结构,例如 Java 中的 HashMap。字典在日常开发中具有广泛的应用,并且是 Redis 服务的基石,在 Redis 数据库的实现、发布订阅、键值过期等场景有很重要的应用。本文从源码层面介绍 Redis 的结构与操作,深入理解其内部原理。字典结构struct dict { //保存当前字典的 hash 函数、key 比较函数等信息
在前端项目中,有时会有后台返回一个时间戳,页面展示却是普通的日期格式,针对这种情况有很多种解决的办法, 最常见的就是组件库中自带的日期组件,可以将时间戳自动转换成普通时间格式。本篇文章将展示在不需要日期组件的时候就怎么 使用原生的方法去进行转化。代码如下: timeChange(UTCDateString) { if (!UT
算法随笔-数据结构(栈)本文主要介绍数据结构中的栈的特点、使用场景、ES6实现Stack类和题解leetCode真题。供自己以后查漏补缺,也欢迎同道朋友交流学习。引言栈这个名字对开发者来说不应该陌生,我们经常说调用栈、堆栈等术语,指的就是数据结构-栈。栈是一种非常基础的数据结构,在计算机科学和软件开发的许多领域中都有广泛的应用。栈(Stack)是一种遵循后进先出(LIFO,Last In Firs
针对不同设备的适配问题,用了两种常见的解决方案:有pc端UI,但无移动端,移动端适配自己排版,这种情况下我采用的是媒体查询,通过@media实现一套html配合多套css实现适配有完整的移动端UI,我通过rem实现的不同设备相同比例的适配首先是媒体查询(更多用法可见MDN):/*媒体查询的基本语法,这句代码的意思是当屏幕的最小宽度是900px的时候,使用以下的css*/ @media screen
一、前言在鸿蒙OS开发过程中,随着应用规模的扩大,登录状态管理逐渐成为系统设计中的一个挑战。一个清晰、高效的登录状态管理系统不仅可以简化开发流程,还能提升用户体验。本文将分享一种优雅的登录状态管理设计方案,帮助开发者轻松应对复杂系统中的登录状态控制。二、认证事件与认证代码设计认证事件是应用全局事件的核心,它触发登录或退出操作,并可在整个项目中进行广播。我们定义了三种基本的认证事件:启动认证、登录认
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似:void swap1(int *a, int *b); //交换 int 变量的值 void
一、es6相关有let、const、变量的结构赋值、模板字符串``对象的简化写法:let name = 'aaa'; let change = function() { console.log('jjj');} const school = {name. change}箭头函数以及声明特点,特点有以下this是静态的,this始终指向函数声明时所在作用域下this的值,call和apply
前言Proxy是ES6引入的一个元编程特性,它允许你创建一个代理对象,用于拦截并自定义 JavaScript 对象的基本操作。通过代理对象,你可以拦截并重定义对象的基本操作,比如属性查找、赋值、枚举等。Proxy的核心思想是在目标对象和代码之间建立一个拦截层,使得可以对目标对象的操作进行拦截和监视。创建Proxy对象创建Proxy对象的基本语法如下:let proxy = new Proxy(ta
在 TypeScript 中,enum 关键字提供了一种定义一组命名常量的方式,这些常量可以作为类型或值使用。枚举最早在 TypeScript 的第一个版本中引入,虽然它们还没有被添加到 JavaScript 中,但它们在 TypeScript 中作为一个独有的运行时特性,展现了强大的功能和一些有趣的行为。枚举特别适用于定义一组有限的、稳定的常量值,帮助开发者编写更加清晰和易于维护的代码。数值枚举
前言在软件开发中,有时我们希望某个类在系统中只存在一个实例,且能够被整个应用程序共享。例如,在一个大型系统中,如果每次访问某个资源都需要创建一个新的实例,不仅会浪费系统资源,还可能导致意想不到的问题。单例模式正是为了解决这个问题而设计的。特点:只有一个实例,全局都可以访问该实例避免重复创建,减少内存占用。简单版闭包实现var SingleTon = (function () { var ins
WebSocket是一种在Web浏览器和Web服务器之间创建持久性连接的通信协议。它允许客户端和服务器之间进行全双工通信,这意味着服务器可以主动向客户端发送数据,而不需要客户端首先发起请求。通常用于实时数据传输的场景背景在 websocket 出来前,想实现实时通信、变更推送、服务端信息推送功能,一般方案是使用 ajax 短轮询、长轮询两种方式 短轮询(short polling)是客户端定时向服
根据方法特性分类数组方法改变数组自身的方法3个常用方法:splice(startIndex, deleteCount, ...items)--从指定位置添加元素,返回被删元素(新增时返回空数组)。sort(func(a,b))--数组排序,按照字符编码的顺序排序。时间复杂度跟浏览器实现方法有关。reverse() --数组头尾颠倒,在谷歌/Microsoft Edge中相当于sort((a,b)=
前情提要今天开发的时候发现,在页面滚动的时候,缩放的元素也一起滚动了,于是需要判断是否在缩放元素内滚动,查了下实现方式,遂记录一下实现方式function wheelAction (e) { let x = e.pageX let y = e.pageY let canvas = this.$refs.canvas let rect = canvas.getBoundingClie
当我们处理数据时,有时候需要对数据进行去重操作。在 JavaScript 中,我们可以使用 Array.prototype.reduce() 方法来实现数组去重。本文将介绍如何使用 reduce() 方法来去重数组,并提供一些示例代码。什么是 reduce() 方法Array.prototype.reduce() 方法是 JavaScript 中的一个高阶函数,它可以将数组中的每个元素依次传递给一
防抖(debounce)和节流(throttle)是两种常用的优化高频触发事件的方法。防抖:当持续触发事件时,一定时间段内没有再触发事件,函数才会执行一次,如果在这个时间段内又触发了事件,则会重新开始延时。常用于输入框搜索、滚动加载等场景。节流:当持续触发事件时,保证一定时间段内只触发一次事件处理函数。常用于滚动监听、窗口大小改变等场景。防抖:通俗来说就是我输入一个a后再规定时间内又输入一个a,第
书接上文!!!!!!七、组件间通信7: $children 与 $parent在 Vue 组件开发中,$children 和 $parent 是两个特殊的属性,可以用于实现组件之间的通信。注意点:$children 数组是不稳定的,其顺序可能受到组件渲染顺序的影响。$parent 只能访问当前组件的直接父组件实例。不推荐使用 $children 和 $parent 来访问子组件和父组件,因为这可能
书接上文!!!!组件间通信4: v-modelv-model 是 Vue 提供的一个用于双向绑定的指令,它可以方便地在父组件和子组件之间进行双向数据绑定。注意点:v-model 实际上是语法糖,它简化了 value prop 和 input 事件的绑定。当使用 v-model 时,确保子组件正确实现了 input 事件。示例自定义输入框组件<template> <i
Vue.js 组件间通信指南本文将详细介绍 Vue 中几种常用的通信方法,包括基本的 props 传递、自定义事件、事件总线、v-model 双向绑定、sync 属性修饰符、$attrs 与 $listeners 的使用、$children 与 $parent 的访问、provide 与 inject 的高级应用,以及 Vuex 状态管理库的集成。一、组件间通信最基本方式: propsprops
背景:最近实现一个功能需要使用iframe嵌入其它系统内部的一个页面,但嵌入后出现一个问题,就是一打开这个页面就会自动跳转到登录页,原因是被嵌入系统没有登录(没有token)肯定不让访问内部页面的,本文就是解决这个问题的。选择的技术方案:本地系统使用iframe嵌入某个系统内部页面,那就证明被嵌入系统是安全的可使用的,所以可以通过通讯方式带一个token过去实现免登录,我用vue项目作为例子具体如
axios的两种调用方式经常调接口的同学一定非常熟悉aixos下面的两种使用方式:axios(config)// 配置式请求 axios({ method: 'post', url: '/user/12345', });axios.post(url, config)// 简洁的写法 axios.post('/user/12345')axios到底是个什么东西?我们为什么可以使用这两种方式请
前言作为公司内的一名高级前端码喽,大大小小也封装过了不少组件和功能,我逐渐意识到封装并非全是优点,也会存在一些不可忽视的潜在劣势。在项目中,我们急切地对各种功能和 UI 进行封装,却在不经意间忽略了封装可能带来的额外成本与潜在问题。比如,在之前的一个项目中,为了实现一个看似简单的列表展示功能,我将数据获取、渲染逻辑以及交互处理都塞进了一个繁杂的组件中。后续当需要对列表的某一特定功能进行细微调整时,
在嵌入式系统的世界里,C++ 是一种强大且灵活的编程语言,尤其在需要高性能和低层硬件控制的应用场景中大放异彩。裸机开发,即不依赖于任何操作系统直接与硬件交互的编程方式,是嵌入式开发中的一个重要分支。本文将深入浅出地探讨C++在嵌入式编程与裸机开发中的应用,包括常见问题、易错点以及如何避免这些问题。1. 内存管理在裸机开发中,内存管理至关重要,因为资源有限。C++提供了多种内存管理工具,如
Excel 单元格本身不支持直接渲染 HTML 内容。当将 HTML 内容直接写入 Excel 单元格时,它会被视为纯文本,Excel 不会自动解析和渲染 HTML 标签。这意味着,如果使用 api将 HTML 内容直接写入 Excel 单元格,导出后的 Excel 文件在打开时会显示原始的 HTML 标签,而不是渲染后的富文本效果。例如,如果写入 "HELLO“要在 Excel 中实现类似 HT
单线程模型Event Loop机制Dart是单线程的,单线程和异步不冲突。App应用程序绝大多数时间都在等待,等用户点击、等网络请求返回,文件IO结果等。基于这些特点,单线程模型可以在等待中做别的事情。等待的过程并不是阻塞的,这个行为就是Event Loop驱动的。事件队列Event Queue会把其他异步操作的完成、需要主线程响应的事件加入其中。有点像iOS的RunLoop,不断轮询事件队列,取
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号