自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用Refine构建项目(1)初始化项目

以上步骤将为你创建一个基础的Refine项目结构,你可以在此基础上进行开发和定制。如果你需要进一步的定制或添加特定的功能,Refine提供了丰富的API和Hooks来支持你的开发需求。更多详细信息和高级配置,可以参考Refine的官方文档。在初始化过程中,你可以选择需要的特性,如React Router、数据提供者(例如simple-rest或GraphQL)、UI库(例如Ant Design、Material UI等)和其他选项。这将启动你的Refine项目,你可以开始根据需要添加页面、组件和逻辑了。

2024-09-19 21:53:56 452 1

原创 状态管理库之Redux

Redux 是一个流行的 JavaScript 状态管理库,它被设计用来为应用程序提供可预测的状态容器。Redux 通常用于大型前端应用程序,尤其是那些需要跨组件共享复杂状态的应用程序。Redux 通过这些机制提供了一个强大且灵活的方式来管理应用的状态,使得状态的跟踪、调试和维护变得更加容易。假设你正在开发一个待办事项列表应用,你需要管理待办事项的添加、删除和标记完成状态。

2024-09-18 11:44:52 409

原创 如何避免在使用 Context API 时出现状态管理的常见问题?

在使用 React 的 Context API 时,确实存在一些常见的问题和潜在的性能风险。

2024-09-18 11:09:44 606

原创 在 React 中,如何使用 Context API 来实现跨组件的通信?

在 React 中,Context API 提供了一种方式,允许你在组件树中传递数据,而无需在每个层级手动传递 props。这对于实现跨组件通信非常有用,特别是当你需要在多个组件间共享状态或函数时。

2024-09-13 10:15:01 841

原创 React组件通信方式(父传子,兄弟组件,子传父)

在 React 中,组件间的通信是构建交互式应用的核心。

2024-09-13 10:14:42 505

原创 React 项目中,如何实现有效的内存管理和防止内存泄漏?

在 React 项目中,实现有效的内存管理和防止内存泄漏是确保应用性能和用户体验的关键。

2024-09-12 18:11:20 1298

原创 react Refine 框架在性能优化方面有哪些具体的技术手段?

Refine 建议使用图像压缩工具,并实施响应式图像策略,以根据设备大小加载适当的图像文件。:Refine 强调数据库优化的重要性,包括定期更新和优化数据库索引,以及实施查询优化技术。:Refine 支持代码分割和懒加载,确保只有在需要时才加载资源,从而提高应用的加载速度。:Refine 鼓励开发者重构和优化代码,以提高处理效率和减少不必要的计算。:框架支持实施缓存策略,利用浏览器缓存和服务器端缓存来减少加载时间。:对于静态页面,Refine 可以配置服务端渲染,以提高首屏加载性能。

2024-09-12 11:27:55 452

原创 如何识别和防范跨站请求伪造(CSRF)?

识别和防范跨站请求伪造(CSRF)的关键在于理解其攻击原理并采取相应的措施。

2024-09-09 17:11:05 642

原创 如何识别和防范跨站脚本攻击(XSS)?

识别和防范跨站脚本攻击(XSS)需要一系列的措施,包括输入验证、输出编码、安全配置和用户教育。

2024-09-09 17:10:25 785

原创 什么是跨站脚本攻击(XSS)和跨站请求伪造(CSRF)?

跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是两种常见的网络安全威胁,它们利用网站和用户浏览器之间的交互来实施攻击。定义:攻击方式:类型:定义:攻击方式:特点:对XSS的防御:对CSRF的防御:

2024-09-09 17:05:15 795

原创 React开源框架之Refine

Refine 是由 Retax 演变而来,它提供了一套完整的解决方案,用于构建 CRUD(创建、读取、更新、删除)应用程序,同时也支持更复杂的后台管理功能。:虽然 Refine 提供了许多预构建的组件,但它也支持高度定制,开发者可以根据自己的需求来定制组件和页面。:Refine 使用了 React Query 作为其数据同步和缓存的解决方案,提供了高效的数据获取和管理。:Refine 提供了一系列预构建的组件和页面,如列表、表单、编辑器等,这些可以帮助开发者快速启动项目。

2024-09-04 22:02:37 918

原创 在 Vue 3 中,如何使用 Teleport 来优化组件的 DOM 结构?

是一个内置组件,它允许你将组件的 DOM 输出到组件外部的 DOM 节点中。这在某些情况下可以优化组件的 DOM 结构,例如当你需要将弹窗、侧边栏、对话框等组件渲染到 body 标签的直接子元素中,而不是嵌套在当前组件的 DOM 结构中时。是一个非常强大的工具,可以帮助你更好地控制组件的 DOM 输出,特别是在构建复杂的 UI 组件时。// 假设有一个方法来控制模态框的显示。这个 DOM 节点中,而不是嵌套在。在 Vue 3 中,

2024-09-04 16:14:52 800

原创 Vue 3 的性能提升具体体现在哪些方面?

这些性能提升使得 Vue 3 在大型应用和复杂场景中表现出更好的性能和更高的开发效率。

2024-09-03 16:40:40 642 1

原创 如何将npm 升级到最新版本

这将会把最新版本的npm安装到当前项目中,并且将其作为一个开发依赖项保存到package.json文件中。这将会全局安装(-g)最新版本的npm。

2024-09-03 16:24:59 2985

原创 如何使用useMemo来优化React组件的性能?

是 React 提供的一个 Hook,它可以用来记忆复杂计算的结果,避免在每次渲染时都进行重复计算,从而优化组件的性能。并不保证所记忆的值不会被丢弃。在React的将来的重渲染过程中,可能会清除这些值以释放内存。主要用于性能优化,而不是作为缓存机制。变化时,才会重新计算。

2024-09-02 15:22:27 1020

原创 在使用React Hooks中,如何避免状态更新时的性能问题?

依赖项中的值发生变化,直接更新状态可能导致无限循环。通过这些策略,可以减少不必要的渲染和副作用,提高React应用的性能。如果某些值不应该触发组件渲染,但又需要在组件内部保持,可以使用。确保副作用逻辑不在渲染路径中同步执行,这可能会导致性能瓶颈。Hook,这样只有相关的状态部分发生变化时才会触发更新。Hook来集中管理状态更新,这有助于避免组件内的多个。来记忆回调函数,避免因引用变化导致的子组件重新渲染。来避免组件或其子组件进行不必要的渲染。来避免组件树不必要的渲染。对于复杂的状态逻辑,使用。

2024-08-28 15:41:09 1072

原创 React Hooks 和类组件相比有哪些优势和劣势?

React Hooks和类组件各有优势和劣势,它们适用于不同的场景。

2024-08-27 22:28:40 926

原创 React Hooks 的使用场景有哪些?

React Hooks是React 16.8引入的一项特性,它允许你在不编写类组件的情况下使用state和其他React特性。Hook来处理更复杂的状态逻辑,它接收一个reducer函数和初始状态,并返回当前状态和派发action的函数。React Hooks提供了一种更声明式和灵活的方式来构建组件,使函数组件能够处理原本需要类组件才能完成的任务。:虽然不是直接的Hook,但React的懒加载组件通常与。:React 18引入的并发模式和新的Hooks,如。来记忆组件或计算结果,避免不必要的渲染和计算。

2024-08-27 22:26:25 536

原创 高级前端工程师React面试题

React是一个用于构建用户界面的JavaScript库,由Facebook维护,主要用于构建单页应用。React使用JSX和基于组件的架构,而Vue使用基于HTML的模板。React没有提供像Vue那样的双向数据绑定,且React的生态系统更侧重于大型应用。React组件的生命周期包括挂载(mounting)、更新(updating)、卸载(unmounting)三个阶段,每个阶段都有相应的钩子函数。JSX是一种JavaScript的语法扩展,它允许你在JavaScript代码中写类似HTML的标记。st

2024-08-26 16:43:31 1136

原创 高级前端工程师Vue面试题

原型链是JavaScript对象之间基于原型的继承链。每个对象都有一个内部属性[[Prototype]],指向它的原型,可以是另一个对象或null。生命周期钩子是Vue实例在不同阶段会调用的函数,如createdmountedupdateddestroyed等。XSS是攻击者将恶意脚本注入到网页中,当其他用户访问该页面时,脚本在用户的浏览器中执行。CSRF是攻击者利用用户的登录状态发起恶意请求。前端性能优化包括减少HTTP请求、使用CDN、压缩文件、图片优化、代码分割、懒加载、预加载等技术。

2024-07-12 14:53:56 1344

原创 vue-cli + APIcloud

运行成功后左侧选择apicloud任务,直接运行,也可以配置修改端口,是否进行文件监听(插件暂时不进行文件监听同步不了文件)5.项目创建完成之后在项目根目录创建vue.config.js文件(vue cli3的配置文件),文件里的代码为。8.在widget 文件夹中配置config.xml文件,config.xml文件就是apicloud的配置文件。4.在面板中创建新项目,输入项目名之后点击下一步,选择预设-默认后直接创建项目。3.进入工作目录里运行 vue ui,此时会打开vue的UI面板。

2022-11-24 16:15:04 533

原创 VueCLI4打包时清除console.log

1.在项目中下载依赖包npm install babel-plugin-transform-remove-console -g2.在项目babel.config.js中配置let transformRemoveConsolePlugin = [];// 生产环境清除console.log的信息if (process.env.NODE_ENV === "production") { transformRemoveConsolePlugin = ["transform-remove-consol

2020-12-02 16:48:37 1310 3

原创 Vue源码分析之Vue入口文件

文章目录1.1 Flow1.2 Vue.js源码目录Vue.js 的源码都在 src 目录下,其目录结构如下:compilercoreplatformsserversfcshared1.3 Vue.js构建方式1.4 Vue.js入口1.1 FlowFlow是facebook出品的JavaScript代码的静态类型检查器。Vue.js 的源码利用了 Flow 做了静态类型检查。Flow的工作方式:类型推断:通过变量的使用上下文来推断,然后根据这些推断来判断类型。类型注释:事先注释数据类型,Flo

2020-10-10 16:10:55 1160 1

原创 前端基于WebSocket封装

1.无心跳,短开连接之后重新连。class webSocketClass { constructor(name) { this.lockReconnect = false; this.localUrl = "ws://XXXXXX"; this.wsUrl = ""; this.globalCallback = null; this.userClose = false; this.createWebSocket(name); } createW

2020-09-16 14:39:17 1296

原创 后台管理系统的权限控制------前端权限管理

1.权限管理的相关概念1.1 什么是权限管理权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制,而针对的对象是员工,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,数据泄露等问题。1.2 权限分类后端权限管理权限管理的核心在于服务其中的数据变化,所以后端是权限管理的关键后端是如何知道该请求是哪个用户发过来的cookie:Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方

2020-09-09 15:14:18 5731 1

原创 JS字符串截取的三种方法 substring(), slice(),substr()

常用方法: substring(), slice(),substr(),它们都接受一个或两个参数;1. slice()str.slice(start,end)//start是必选参数,意思是从第start个字符开始截取到末尾。如果是负数,那么它规定从字符串尾部开始算起的位置。也就是说,-1 指最后一个字符,-2 指倒数第二个字符,以此类推。//end是可选参数,从第start个字符开始截取到第end个字符。如果没有指定该参数,那么截取的字符串包含从 start 到结束的所有字符。如果这个参数是负数,

2020-08-05 18:13:56 1294

原创 前端面试题及答案汇总

闭包是能够读取其他函数内部变量的函数要理解闭包,首先必须理解Javascript特殊的变量作用域闭包的特性:1.封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;2.持久性:一般的函数,调用完之后,系统会自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包依然存在。1.创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。2.属性和方法被加到this引用的对象中。

2020-03-26 14:39:55 65421 13

原创 ionicAndroid 端APP在手机端运行无法http请求的解决方法

1.在AndroidManifest.xml文件中application标签上加 android:networkSecurityConfig="@xml/network_security_config"2.在res/xml文件夹下创建名为network_security_config的xml文件文件内容为:<?xml version="1.0" encoding="utf-8"?&gt...

2020-03-03 16:32:35 1102 6

原创 angular6调试报Uncaught Error: Can't resolve all parameters for ApplicationModule错

angular6调试报Uncaught Error: Can’t resolve all parameters for ApplicationModule错解决方法:在angular项目polyfills.ts中添加import 'core-js/es7/reflect';

2020-01-06 13:46:38 1677

原创 ionic4踩坑记

用了ionic4 四个月了,遇到的坑今天整理一下1.标题栏的返回按钮ion-back-button,在页面刷新后不显示目前解决办法是重新写返回按钮<ion-buttons class="backIcon" slot="start"> <ion-button (click)="canGoBack()"> <ion-icon slot="icon-on...

2019-11-20 13:21:51 523

原创 ionic4学习笔记(八)--Clipboard 将内容复制到剪贴板

1.ts文件中引入依赖import { Plugins } from '@capacitor/core';2.html文件中<div> <ion-button (click)="clipboardSetString()"> clipboardSetString </ion-button> &...

2019-09-25 13:50:12 1433

原创 ionic4学习笔记(七)-- 组件

1.alert1,实现弹出框,2秒钟之后消失import { AlertController } from '@ionic/angular'; constructor(public alertController: AlertController) { } async presentAlert() { const alert = await this.alertControlle...

2019-09-12 13:08:00 443

原创 ionic4学习笔记(六)---打包之cordova

确定本地安装配置了JDK和Android SDK1.安装cordovanpm install cordova -g2.构建项目//构建android platform:ionic cordova platform add android//构建ios platformcordova platform add ios3.打包安卓Appionic cordova build an...

2019-08-23 11:32:59 482

原创 ionic4学习笔记(五)--消息推送JPush

1.在极光官网注册、登录、创建应用极光推送官网地址应用名称要与config.xml一致2.安装插件cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey//your_jpush_appkey是应用信息的AppKeynpm install --save @jiguang-ionic/j...

2019-08-13 15:53:09 2248

原创 ionic4学习笔记(四)--自定义公共模块

在angular中,我们都是自定义组件来使用,但是ionic4之后,沿用了angular的模块化思想,使用懒加载的方式加载页面,每个页面都是一个模块,要是继续创建组件的话,不能在多个模块中引用同一组件,所以我们要把模块创建为组件,让模块来引用模块。创建一个tabs项目,在项目中执行命令ionic g module module/listionic g component module/lis...

2019-08-06 16:04:20 949

原创 ionic4学习笔记(三)--项目目录结构分析

项目目录结构:项目结构分析:e2e端对端的测试文件node_modules 项目依赖src 项目开发文件app 项目模块,组件,服务assets 项目静态资源文件environments 项目环境,可以配置项目的运行环境theme 主题文件,可配置主题global.scss 全局样式文件index.html 项目入口karma.conf.js 测试配...

2019-08-06 13:44:33 827

原创 ionic4学习笔记(二)-- 创建页面,ion-back-button属性

1.创建user页面ionic g page userionic提供了用命令生成界面的功能:在命令行输入ionic g如下:PS D:\item\ionic-test> ionic g? What would you like to generate? (Use arrow keys)pagecomponentservicemoduleclassdirective...

2019-08-05 18:20:11 1824

原创 ionic4学习笔记(一)--创建项目

1.首先要更新或者安装ionic clinpm install -g ionic2.创建项目ionic start ionic-testionic-test是创建的项目名称安装后会提示选择1.blank: 只有一个页面的空项目2.tabs: 带了下方切换页面按钮的项目3.sidemenu: 带了侧边菜单的项目3.项目跑起来npm run start打开 http://...

2019-08-05 16:06:11 679

原创 安卓模拟器Genymotion下载安装

下载Genymotion地址因为Genymotion运行需要VirtualBox,如果电脑上没安装过VirtualBox,建议选这个版本。

2019-08-05 13:49:37 679

原创 angular8版本父子组件传参报错 @ViewChild()

ERROR in src/app/component/refresh/refresh.component.ts(14,4): error TS2554: Expected 2 arguments, but got 1.解决办法//加上{static: false}@ViewChild('divContent',{static: false}) divContent: ElementRe...

2019-08-01 16:27:06 1897 1

空空如也

空空如也

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

TA关注的人

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