国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在生產(chǎn)環(huán)境中使用LogRocket記錄Redux日志--sitepoint

cppowboy / 3050人閱讀

摘要:在生產(chǎn)環(huán)境,記錄和,使得理解和用戶上報的變得容易了在這篇文章中,我將會向你展示如何使用來記錄日志。在生產(chǎn)環(huán)境記錄數(shù)據(jù)非常有用,因為和用戶上報的問題,可以通過查看狀態(tài)網(wǎng)絡(luò)請求和來進(jìn)行調(diào)試排查。

原文鏈接

在web應(yīng)用中排查問題很難。那些難解的js錯誤,用戶上報的bug,還有QA系統(tǒng)里的issue,解決這些影響用戶的問題是永恒不變的斗爭。這些還只是那些明顯的問題,事實是大部分的bug從來都沒有被上報,因為當(dāng)用戶對應(yīng)用有個不好的體驗時,他們將不再使用,或者忍氣吞聲。

為了解決這種問題,越來越多的開發(fā)者們引入前端日志工具,因為現(xiàn)在的狀態(tài)管理庫,像redux一樣,留好了豐富的追蹤日志接口。在生產(chǎn)環(huán)境,記錄action和state,使得理解bug和用戶上報的issues變得容易了

在這篇文章中,我將會向你展示如何使用LogRocket來記錄Redux日志。然后,我將會討論一些使Redux應(yīng)用debug變得容易的技巧。

這篇文章最初發(fā)表在logrocket.com上。經(jīng)過作者的授權(quán),轉(zhuǎn)載在這里。如果你喜歡這篇文章,可以關(guān)注Ben的其他文章。如果你想了解更多Redux方面的東西,為何不注冊一個SitePoint賬號,這里有我們最新的教程

LogRocket: web應(yīng)用的錄像機(jī)

LogRocket 是一個新型的開發(fā)者工具。它就像一個web應(yīng)用的錄像機(jī),可以記錄下發(fā)生在你的頁面上所發(fā)生的一切。它適用于任何app,不管你使用什么框架。對于React,Redux,Vue.js和Angular都有相應(yīng)的插件可供使用。通過LogRocket,你可以回放bug或者用戶反饋的issue時所處的會話信息,從而快速定位到問題所在。

除了記錄Redux action和state之外,LogRocket還可以記錄控制臺console的日志,js錯誤,堆棧信息,網(wǎng)絡(luò)請求/響應(yīng)(含header和responseBody),瀏覽器的metadata和自定義日志。它還可以監(jiān)控DOM來記錄頁面上的HTML和CSS,還原出像素級的視頻,即使是最復(fù)雜的單頁面應(yīng)用。

開始使用LogRocket

使用LogRocket非常簡單,只需要在你的應(yīng)用中加幾行代碼就可以了:

使用npm i --save logrocket進(jìn)行安裝

在https://app.logrocket.com上創(chuàng)建一個免費(fèi)的賬號,創(chuàng)建你的app id

在你的應(yīng)用中初始化LogRocket

    import LogRocket from "logrocket";
    // Initialize LogRocket with your app ID
    LogRocket.init();

增加Redux中間件

    import { applyMiddleware, createStore } from "redux";
    const store = createStore(
      reducer, // your app reducer
      applyMiddleware(middlewares, LogRocket.reduxMiddleware()),
    );

這就是基本的用法

LogRocket同時也為其他的Flux實現(xiàn),比如ngrxvuex,提供了插件,你可以從這里獲取更多細(xì)節(jié)

--廣告--

回放用戶會話

在LogRocket中回放會話,就像在你自己的瀏覽器中看著它一步步發(fā)生一樣。你可以查看Redux actions中詳細(xì)的action payload、上一個狀態(tài)和下一個狀態(tài)

LogRocket捕獲了網(wǎng)絡(luò)請求和響應(yīng),你可以查看某次請求的headers和body的詳情信息。下面的瀑布圖展示了耗時,可以很容易地分辨出哪些請求很慢,或者有哪些潛在的網(wǎng)絡(luò)競爭。

有時候單憑Redux的日志來排查bug是遠(yuǎn)遠(yuǎn)不夠的,特別是排查用戶上報的問題的時候。LogRocket的視頻回放可以幫助你查看用戶當(dāng)時的界面

因為視頻實際上就是DOM的重建過程(并非是真實的視頻),所以你可以查看HTML和CSS來排查UI bug,或者以2倍的速度快進(jìn),來理解用戶在遇到問題時在app中做了哪些操作。

整合Redux日志記錄到你的工作流中

能重放用戶會話和Redux日志,無疑對整個開發(fā)過程是很有幫助的。

修復(fù)bug

LogRocket,像Sentry和Bugsnag一樣,整合了錯誤上報工具,可以讓你查看Redux日志和每個bug的視頻記錄。這不僅對修復(fù)bug很有幫助,還可以幫助了解錯誤的影響范圍有多少,畢竟一些js錯誤完全是不影響的。通過查看視頻,可以判斷出,當(dāng)錯誤發(fā)生時,它是否真的會影響用戶操作,還是可以忽略不計。

支持度

通常情況下,用戶上報問題時,并不能給出足夠的上下文來判斷到底發(fā)生了什么。

如果你正在使用一個像Intercom的聊天工具,你可以直接將LogRocket整合進(jìn)去,從而無論用戶何時開始聊天,你都可以插入一條記錄鏈接。

如果你整合了一個更加通用的分析工具,你可以調(diào)用它的跟蹤API接口來增加一條記錄鏈接,像下面這樣:

LogRocket.getSessionURL(function (sessionURL) {
  analytics.track("LogRocket recording", sessionURL);
})
在生產(chǎn)環(huán)境盡可能多地創(chuàng)建Redux日志

在所有的Redux應(yīng)用中,生產(chǎn)環(huán)境日志記錄是非常有用的。你可以通過良好的設(shè)計,使日志記錄最有效,保證這些日志足以排查問題所在。

在Redux中保留盡可能地多的狀態(tài)信息

這里我不想深入討論Rdux state。當(dāng)你決定是否將一部分?jǐn)?shù)據(jù)放入state中時,問問自己這些狀態(tài)是否可以幫助你排查問題。如果回答是yes的話,就將它們放入state中去。當(dāng)應(yīng)用crash或者用戶遇到問題時,它們將會被記錄下來。

使用事半功倍的數(shù)據(jù)請求庫

像 適用GraphQL的apollo-client,使用REST的redux-query這樣的庫,都可以幫助你用來從網(wǎng)絡(luò)請求中抓取數(shù)據(jù)。它們使用Redux作為一個持久化層,這意味著當(dāng)調(diào)試問題的時候,你可以查看你的Redux日志,從而可以查看客戶端獲取了哪些數(shù)據(jù)

如果你更喜歡一種簡單的方式,你可以不使用這些拉取數(shù)據(jù)的框架,只通過簡單地dispatch action,當(dāng)你準(zhǔn)備發(fā)送和接收請求的時候。

使用Redux來處理未知的數(shù)據(jù)來源

當(dāng)從websockets,localstorage,IndexedDB,或者Date()中訪問數(shù)據(jù)時,考慮使用dispatch action,這樣你可以在以后很方便的調(diào)試。例如:當(dāng)監(jiān)聽websocket的時候,對每條信息都dispatch一條action,這樣的話,你就可以在Redux日志中看到這些數(shù)據(jù)

考慮其他的Console APIs

Console方法,比如console.time(),console.count()console.group(),可以讓你添加豐富的數(shù)據(jù)到你的日志中去,比如React組件的渲染數(shù)量,動畫時間和組件生命周期日志。如果你對這些感興趣,可以查看我的另一篇文章

編譯上傳source Map到LogRocket

LogRocket支持source map,你可以通過命令上傳。這樣做,你可以在代碼里看到j(luò)s的錯誤堆棧、Redux action,console日志和網(wǎng)絡(luò)請求

結(jié)論

React和Redux都被贊賞為可創(chuàng)建可維護(hù)性的應(yīng)用。在生產(chǎn)環(huán)境記錄Redux數(shù)據(jù)非常有用,因為bug和用戶上報的問題,可以通過查看Redux狀態(tài)、網(wǎng)絡(luò)請求和DOM來進(jìn)行調(diào)試排查。

在Redux日志中使用LogRocket可以簡化bug fix過程,你可以開始使用LogRocket

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84201.html

相關(guān)文章

  • 2017-07-06 前端日報

    摘要:前端日報精選專題之類型判斷下百度生態(tài)構(gòu)建發(fā)布基于的解決方案將全面支持從綁定,看語言發(fā)展和框架設(shè)計掘金譯機(jī)器學(xué)習(xí)與一付費(fèi)問答上線,向你心目中的大牛提問吧產(chǎn)品技術(shù)日志中文第期團(tuán)隊技術(shù)信息流建設(shè)翻譯基于路由的異步組件加載個必備的裝逼 2017-07-06 前端日報 精選 JavaScript專題之類型判斷(下) · Issue #30 · mqyqingfeng/Blog 百度Web生態(tài)構(gòu)...

    shiguibiao 評論0 收藏0
  • 2017-07-22 前端日報

    摘要:前端日報精選任何網(wǎng)站都可以變成但我們需要做得更好譯高性能個新工具加速你的應(yīng)用在生產(chǎn)環(huán)境中使用記錄日志手把手教你用開發(fā)一個發(fā)布中文譯繼承實例譯基于背后的合理化,而非設(shè)計掘金實現(xiàn)哪家強(qiáng)中的眾成翻譯快速入門個人文章一個基于區(qū)塊鏈的深網(wǎng) 2017-07-22 前端日報 精選 任何網(wǎng)站都可以變成 PWA —— 但我們需要做得更好[譯] 高性能 React:3 個新工具加速你的應(yīng)用在生產(chǎn)環(huán)境中使用...

    endless_road 評論0 收藏0
  • 如何Vue里建立長按指令

    摘要:首先,我們必須聲明自定義指令的名稱。這基本上注冊了一個名為的全局自定義指令接下來,我們使用一些參數(shù)添加函數(shù),這允許我們引用元素指令綁定,獲取傳遞給指令的值并標(biāo)識使用該指令的組件。 showImg(https://segmentfault.com/img/bVbfzuo?w=828&h=838); 您是否曾想過按住按鈕幾秒鐘才能在Vue應(yīng)用程序中執(zhí)行某個功能? 您是否曾想在應(yīng)用程序上創(chuàng)建...

    jimhs 評論0 收藏0
  • 如何Vue里建立長按指令

    摘要:首先,我們必須聲明自定義指令的名稱。這基本上注冊了一個名為的全局自定義指令接下來,我們使用一些參數(shù)添加函數(shù),這允許我們引用元素指令綁定,獲取傳遞給指令的值并標(biāo)識使用該指令的組件。 showImg(https://segmentfault.com/img/bVbfzuo?w=828&h=838); 您是否曾想過按住按鈕幾秒鐘才能在Vue應(yīng)用程序中執(zhí)行某個功能? 您是否曾想在應(yīng)用程序上創(chuàng)建...

    guqiu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<