原创 React中Context的API

我的掘金地址:https://juejin.im/post/5c9b10... 1. Context 關於context官網文檔有如下的描述: If you want your application to be stable, don

原创 一次性瞭解React中Hooks

我的掘金:https://juejin.im/post/5c988b... 1. 前言 Hooks是React16.8版本中的新特性,它可以在不使用class聲明的組件中使用state和React特性。 Tip: React v16.8.

原创 日常抄書之一次性弄懂setState

1.前言 React是通過管理狀態來實現對組件的管理。那麼React是如何控制組件的狀態,又是如何利用狀態來管理組件的呢? 在React中是通過this.setState()來更新state。當調用this.setState()的時候,Re

原创 日常抄書之React中Diff算法思路

1. 前言 diff並非React首創,只是React針對diff算法進行了優化。在React中diff算法和Virtual Dom的完美結合可以讓我們不需要關心頁面的變化導致的性能問題。因爲diff會幫助我們計算出Virtual Dom變

原创 一次性搞懂解React生命週期

1. 初步瞭解React生命週期 React生命週期可以分爲掛載、更新、卸載三個階段。主要可以分爲兩類: 組件掛載和卸載; 組件接收新的數據和狀態時的更新; 1.1 組件的掛載 組件的掛載是最基本過程,這個過程主要做初始化。在這初始化個

原创 函數節流(throttle)與函數去抖(debounce)

前言 做過前端的童鞋應該都知道lodash這個強大的使用工具庫。爲什麼要寫這篇文章呢,主要今天遇到一個問題,socket推送消息太頻繁,導致saga頻繁更新,頁面有所卡頓,需要通過函數節流控制,發現自己突然不會寫這樣的代碼,而且模糊了節流和

原创 redux源碼解析

1.前言 關於redux的基本概念和工作流如何進行的這裏就不進行過多概述了,可以查看相關文檔去了解。流程圖鏈接 2.redux源碼結構 以下是redux的源碼結構圖,主要的就是以下幾個文件組成,我們接下來按順序進行介紹其中原理和實現過程。

原创 React代碼開發規範

前言 一般在團隊開發中每個人的代碼習慣都不太一樣,這樣就會導致代碼風格不一致,以致於維護和修改bug的時候看別人的代碼成爲一種痛苦...這種情況尤其在前端開發中尤爲明顯。因爲關於前端的開發規範貌似也沒有行業權威標準。這幾天在網上看了下,基本

原创 Vue動態組件&異步組件

在動態組件上使用keep-alive 我們之前曾經在一個多標籤的界面中使用is特性來切換不同的組件: <component v-bind:is="currentTabComponent"></component> 當在這些組件之間切換的時

原创 Vue列表渲染的示例代碼

這篇文章主要介紹了Vue列表渲染的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 用v-for把一個數組對應爲一個組件元素 我們用v-for指令根據一組數組的選項列表進行渲染

原创 Vue插槽

插槽內容 Vue實現一套內容分發的API, 這套API基於當前的web組件規範草案,將<slot>元素作爲承載分發內容的出口。 <navigation-link url="/profile"> Your Profile </navi

原创 Vue表單輸入綁定

基礎用法 你可以用v-model指令在表單input,textarea以及select元素上創建雙向數據綁定。它會根據控件類型自動選取正確的方法來更新元素。儘管有些神奇,但是v-model本質上不過是語法糖。它負責監聽用戶的輸入事件以更新數

原创 Vue事件處理

監聽事件 可以使用v-on指令監聽DOM事件,並在觸發的時候運行一些JavaScript代碼。 <button v-on:click="counter+1"></button> 事件處理方法 因爲事件處理邏輯會更爲複雜,所以直接把JavaS

原创 Vue列表渲染

用v-for把一個數組對應爲一個組件元素 我們用v-for指令根據一組數組的選項列表進行渲染。v-for指令需要使用item in items形式的語法: <ul> <li v-for="item in items">

原创 Vue條件渲染

v-if 字符串模板中,我們可以像這樣寫一個條件塊: {{#if ok}} <h1></h1> {{/if}} 在Vue中,我們使用v-if指令實現同樣的功能: <h1 v-if="ok"></h1> 也可以使用v-else添加一個