原创 react受控組件與非受控組件
非控組件: Input、textarea等普通元素默認是非受控組件(輸入框內部的值是用戶控制和React無關) // 這種簡單的input就是非控組件 <input type="text"/> 受控組件: 受控組件就是可
原创 React + Sass
Sass很多公司面試都喜歡問這個,今天就寫一篇簡單的sass安裝+使用過程技術棧很簡單,就React + Sass,本文着重討論sass不整太多東西 創建項目:create-react-app react-sass 安裝依賴:npm in
原创 react 路由按需加載
方法一: 從右到左,一級一級拋出 方法二: (1)router文件夾asyncComponent.jsx創建文件 (2)填寫內容 (3)router文件夾的index文件引入asyncComponent.jsx asy
原创 react @types/react-router-dom報錯
編輯器沒有任何報錯 但啓動項目的時候卻報錯了 問題原因: @types/react-router-dom 只是typescript的聲明文件而已 還是要安裝 react-router-dom 核心代碼 解決辦法就是
原创 create-react-app 創建react ts項目啓動報錯
執行創建react ts項目命令: create-react-app demo2 --template typescript 初始化完項目後,打開項目看到 tsconfig.json 報錯 問題來了,就算我把 "react-j
原创 TypeScript 引入第三方包卻報錯:"無法找到模塊"
下面我拿react-router-dom庫做例子 解決辦法有兩種: 方法一:安裝庫的TypeScript版本 方法二:添加特定庫的TypeScript類型聲明 在方法一可行的情況下,推薦使用方法一,但是不是所有庫都有 TypeSc
原创 TS與hook useState
TS文件裏hook的useState怎麼設置格式 貼個完整代碼例子: 還有其他解決辦法(但不建議使用因爲濫用any,僅供參考):解決方法2:const [students, setStudents] = useState<
原创 原生js《發佈訂閱》功能
原生js的“eventemitter 發佈訂閱”其實跟vue的“bus 中央事件總線”是同一種東西,而我只是用js實現一版出來而已 組件代碼: (function () { var msgService = function
原创 react EUI 《消息通知》組件封裝
如題基於EUI封裝個《消息通知》組件 需求,一次調用全項目能用如果按原來的EUI組件, 每個頁面想調用消息通知組件EuiGlobalToastList就得調用DOM跟方法, 比較麻煩現在需要封裝成一句話調用馬上能用比如: message.
原创 react 父級調用子級方法
忙裏偷閒,先記下來寫個大概,反正就是把代碼複製跑一遍就知道怎麼用了 父級代碼: import React, { useRef } from 'react'; import HelloWorld2 from '@/components
原创 element多層導航菜單
很久沒寫博客了原因就是懶, 剛下班今天寫了個基於element導航菜單實現多層菜單(可以無限多層) 組件核心思想就是組件遞歸(這個有時候面試會問到) 可以看看這篇我寫的簡單文章《vue組件遞歸》 然後就判斷children有沒有內容,沒內容
原创 vue組件遞歸
剛纔寫了篇《element多層導航菜單》文章,順便也寫寫其中核心原理 其實沒啥好說就是組件遞歸,這裏呢簡單寫個例子, 面試被問到的時候直接拿來手寫代碼也行, 有看到本文章的同學可以複製代碼去試試 沒多少代碼量,主要是讓還沒懂組件遞歸的同學好
原创 數組去重--hash方法
hash方法我以前百度找到的,經常用性能好速度快,本文章主要是一步步解釋hash方法的過程(其實沒多少步) 在這裏就能看出每個自定義下標都是獨一無二的,其實就相當於數組arr已經去重了 剩下我們就需要把自定義下標給抽取出來放在新數組
原创 WebSocket
WebSocket的來歷我就不說了本文直入主題:怎麼用WebSocket 根據readyState屬性可以判斷webSocket的連接狀態: 0:正在建立連接連接,還沒有完成 1:連接成功建立,可以進行通信 2:連接正在進行關閉握手,即將關
原创 插件:密碼輸入框
這是插件系列的第一個文章,平時工作中忙裏偷閒寫了些自己的組件,現在分享一下 我的組件簡潔無依賴(不需要再引用別的庫比如JQ)用原生JS寫 組件樣式簡單,沒打算寫多漂亮重點實現功能 ====== 分割線 ============ 模仿支付寶密