0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三菱PLC程序解密加密怎么破解,登錄口令破解

PLC工控專欄 ? 來源:加密狗破解 ? 作者:加密狗破解 ? 2022-02-13 16:26 ? 次閱讀

三菱PLC程序解密加密怎么破解,【電;I7I54833762】登錄口令破解React Hooks 是 React 團隊在兩年前的 16.8 版本推出的一套全新的機制。作為最主流的前端框架,React 的 API 十分穩(wěn)定,這次更新的發(fā)布,讓眾多恐懼新輪子的前端大佬們虎軀一震,畢竟每一次更新又是高成本的學習,這玩意到底好使么?
答案是好用的,對于 React 的開發(fā)者而言,只是多了一個選擇。過去的開發(fā)方式是基于Class組件的,而hooks是基于函數(shù)組件,這意味著 這兩種開發(fā)方式可以并存 ,而新的代碼可以根據(jù)具體情況采用 Hooks 的方式來實現(xiàn)就行了。這篇文章主要就來介紹一下 Hooks 的優(yōu)勢 和 常用的幾個鉤子函數(shù) 。
Hooks的優(yōu)勢
1.類組件的不足

代碼量多 :相較于函數(shù)組件的寫法,使用類組件代碼量要略多一點,這個是最直觀的感受。

this指向:類組件中總是需要考慮this的指向問題,而函數(shù)組件則可以忽略。

趨向復(fù)雜難以維護 :在高版本的React中,又更新了一些生命周期函數(shù),因為這些函數(shù)互相解耦,很容易造成分散不集中的寫法,漏掉關(guān)鍵邏輯和多了冗余邏輯,導(dǎo)致后期debug困難。相反,hooks可以把關(guān)鍵邏輯都放在一起,不顯得那么割裂,調(diào)試起來也易懂一點。

狀態(tài)邏輯難復(fù)用 :在組件之間復(fù)用狀態(tài)邏輯很難,可能要用到 render props (渲染屬性)或者 HOC (高階組件),但無論是渲染屬性,還是高階組件,都會在原先的組件外包裹一層父容器(一般都是 div 元素),導(dǎo)致層級冗余。

2. Hooks帶來的好處

邏輯復(fù)用
在組件之前復(fù)用狀態(tài)邏輯,往往需要借助高階組件等復(fù)雜的設(shè)計模式,這些高級組件會產(chǎn)生冗余的組件節(jié)點,讓調(diào)試變得困難,下面用一個demo來對比一下兩種實現(xiàn)方式。

Class

在class組件場景下,定義了一個高階組件,負責監(jiān)聽窗口大小變化,并將變化后的值作為 props 傳給下一個組件。
const useWindowSize = Component => {
// 產(chǎn)生一個高階組件 HOC,只包含監(jiān)聽窗口大小的邏輯
class HOC extends React.PureComponent {
constructor(props) {
super(props);
this.state = {
size: this.getSize()
};
}
componentDidMount() {
window.addEventListener("resize", this.handleResize);
}
componentWillUnmount() {
window.removeEventListener("resize", this.handleResize);
}
getSize() {
return window.innerWidth > 1000 ? "large" :"small";
}
handleResize = ()=> {
const currentSize = this.getSize();
this.setState({
size: this.getSize()
});
}
render() {
// 將窗口大小傳遞給真正的業(yè)務(wù)邏輯組件
return ;
}
}
return HOC;
};
復(fù)制代碼
接下來可以在自定義組件中可以調(diào)用 useWindowSize 這樣的函數(shù)來產(chǎn)生一個新組件,并自帶 size 屬性,例如:
class MyComponent extends React.Component{
render() {
const { size } = this.props;
if (size === "small") return ;
else return ;
}
}
// 使用 useWindowSize 產(chǎn)生高階組件,用于產(chǎn)生 size 屬性傳遞給真正的業(yè)務(wù)組件
export default useWindowSize(MyComponent);
復(fù)制代碼
下面看下Hooks的實現(xiàn)方式

Hooks

const getSize = () => {
return window.innerWidth > 1000 ? "large" : "small";
}
const useWindowSize = () => {
const [size, setSize] = useState(getSize());
useEffect(() => {
const handler = () => {
setSize(getSize())
};
window.addEventListener('resize', handler);
return () => {
window.removeEventListener('resize', handler);
};
}, []);

return size;
};
復(fù)制代碼
使用:
const Demo = () => {
const size = useWindowSize();
if (size === "small") return ;
else return ;
};
復(fù)制代碼
從上面的例子中通過 Hooks 的方式對窗口大小進行了封裝,從而將其變成一個可綁定的數(shù)據(jù)源。這樣當窗口大小發(fā)生變化時,使用這個 Hook 的組件就都會重新渲染。而且代碼也更加簡潔和直觀,不會產(chǎn)生額外的組件節(jié)點,也不顯得那么冗余了。

業(yè)務(wù)代碼更加聚合

下面舉一個最常見的計時器的例子。

class

let timer = null
componentDidMount() {
timer = setInterval(() => {
// ...
}, 1000)
}
// ...
componentWillUnmount() {
if (timer) clearInterval(timer)
}
復(fù)制代碼

Hooks

useEffect(() => {
let timer = setInterval(() => {
// ...
}, 1000)
return () => {
if (timer) clearInterval(timer)
}
}, [//...])
復(fù)制代碼
Hooks的實現(xiàn)方式能讓代碼更加集中,邏輯也更清晰。

寫法簡潔

這個就不舉例了,可以從字面意思理解,使用函數(shù)組件確實能少些很多代碼,懂得都懂,嘻嘻~
幾個內(nèi)置Hooks的作用以及使用思考
useState :讓函數(shù)組件具有維持狀態(tài)的能力
const[count, setCount]=useState(0);
復(fù)制代碼
優(yōu)點:
讓函數(shù)組件具有維持狀態(tài)的能力,即:在一個函數(shù)組件的多次渲染之間,這個 state 是共享的。便于維護狀態(tài)。
缺點:
一旦組件有自己狀態(tài),意味著組件如果重新創(chuàng)建,就需要有恢復(fù)狀態(tài)的過程,這通常會讓組件變得更復(fù)雜。
用法:

useState(initialState) 的參數(shù) initialState 是創(chuàng)建 state 的初始值。


它可以是任意類型,比如數(shù)字、對象、數(shù)組等等。


useState() 的返回值是一個有著兩個元素的數(shù)組。第一個數(shù)組元素用來讀取 state 的值,第二個則是用來設(shè)置這個 state 的值。


在這里要注意的是,state 的變量(例子中的 count)是只讀的,所以我們必須通過第二個數(shù)組元素 setCount 來設(shè)置它的值。


如果要創(chuàng)建多個 state ,那么我們就需要多次調(diào)用 useState。

什么樣的值應(yīng)該保存在 state 中?
通常來說,我們要遵循的一個原則就是:state 中不要保存可以通過計算得到的值 。

從 props 傳遞過來的值。有時候 props 傳遞過來的值無法直接使用,而是要通過一定的計算后再在 UI 上展示,比如說排序。那么我們要做的就是每次用的時候,都重新排序一下,或者利用某些 cache 機制,而不是將結(jié)果直接放到 state 里。
從 URL 中讀到的值。比如有時需要讀取 URL 中的參數(shù),把它作為組件的一部分狀態(tài)。那么我們可以在每次需要用的時候從 URL 中讀取,而不是讀出來直接放到 state 里。
從 cookie、localStorage 中讀取的值。通常來說,也是每次要用的時候直接去讀取,而不是讀出來后放到 state 里。

useEffect:執(zhí)行副作用

useEffect(fn, deps);

useEffect ,顧名思義,用于執(zhí)行一段副作用。
什么是副作用?
通常來說,副作用是指一段和當前執(zhí)行結(jié)果無關(guān)的代碼。比如說要修改函數(shù)外部的某個變量,要發(fā)起一個請求,等等。
也就是說,在函數(shù)組件的當次執(zhí)行過程中, useEffect 中代碼的執(zhí)行是不影響渲染出來的 UI 的。
對應(yīng)到 Class 組件,那么 useEffect 就涵蓋了 ComponentDidMount、componentDidUpdate 和 componentWillUnmount 三個生命周期方法。不過如果你習慣了使用 Class 組件,那千萬不要按照把 useEffect 對應(yīng)到某個或者某幾個生命周期的方法。你只要記住,useEffect 是每次組件 render 完后判斷依賴并執(zhí)行就可以了。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6040

    文章

    44594

    瀏覽量

    636965
  • plc
    plc
    +關(guān)注

    關(guān)注

    5014

    文章

    13349

    瀏覽量

    464452
收藏 人收藏

    評論

    相關(guān)推薦

    淺談加密芯片的一種破解方法和對應(yīng)加密方案改進設(shè)計

    使用Key’對密文數(shù)據(jù)Data’解密得到明文數(shù)據(jù)Data。主MCU的FUNC調(diào)用Data后程序就能正常使用了。 上述加密方案貌似安全可靠,但實際上對于經(jīng)驗豐富的黑客來說破解難度不大。
    發(fā)表于 12-20 15:31

    淺談加密芯片的一種破解方法和加密方案改進設(shè)計

    使用Key’對密文數(shù)據(jù)Data’解密得到明文數(shù)據(jù)Data。主MCU的FUNC調(diào)用Data后程序就能正常使用了。 上述加密方案貌似安全可靠,但實際上對于經(jīng)驗豐富的黑客來說破解難度不大。
    發(fā)表于 12-20 15:10

    三菱PLC解密工具

    三菱PLC解密工具能夠讀取機械設(shè)備的PLC鎖密碼并輕松將其解鎖,輕松解決忘記PLC鎖密碼導(dǎo)致設(shè)備無法使用的問題,并且
    發(fā)表于 11-06 10:51 ?1次下載

    三菱異常停止plc怎么解決

    三菱電機(Mitsubishi Electric)是一家知名的日本企業(yè),其生產(chǎn)的PLC(可編程邏輯控制器)廣泛應(yīng)用于工業(yè)自動化領(lǐng)域。然而,在使用過程中,PLC可能會出現(xiàn)異常停止的情況。 一、
    的頭像 發(fā)表于 07-25 10:13 ?2364次閱讀

    三菱plc程序后綴名有幾種

    的控制。三菱PLC是日本三菱電機公司生產(chǎn)的一種PLC產(chǎn)品,具有較高的市場占有率和良好的用戶口碑。 關(guān)于三菱
    的頭像 發(fā)表于 07-01 10:40 ?3309次閱讀

    三菱plc型號區(qū)別在哪

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是日本三菱電機公司生產(chǎn)的一種工業(yè)自動化控制設(shè)備。三菱PLC
    的頭像 發(fā)表于 07-01 10:38 ?2866次閱讀

    三菱plc使用什么協(xié)議類型

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是工業(yè)自動化領(lǐng)域中廣泛應(yīng)用的一種控制器。它通過接收輸入信號,執(zhí)行用戶編寫的程序,然后輸出控制信號來實現(xiàn)
    的頭像 發(fā)表于 07-01 10:31 ?1635次閱讀

    三菱PLC支持哪些通訊協(xié)議

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是一種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的控制設(shè)備。它具有高度的可靠性、靈活性和易用性,能夠滿足各種工業(yè)自動化需求
    的頭像 發(fā)表于 07-01 10:20 ?5565次閱讀

    三菱plc累加指令怎么用

    三菱PLC(Programmable Logic Controller,可編程邏輯控制器)是工業(yè)自動化領(lǐng)域常用的一種控制器。累加指令是PLC編程中的一種基本指令,用于對數(shù)據(jù)進行累加操作。在三菱
    的頭像 發(fā)表于 06-20 11:34 ?3943次閱讀

    三菱fx系列plc怎么讀取程序

    。本文將詳細介紹如何讀取三菱FX系列PLC程序。 1. 準備工作 1.1 硬件準備 三菱FX系列PLC :確保
    的頭像 發(fā)表于 06-20 10:26 ?2365次閱讀

    三菱PLC的工作模式詳解

    三菱PLC(可編程邏輯控制器)作為工業(yè)自動化領(lǐng)域的核心控制設(shè)備,其工作模式直接關(guān)系到控制系統(tǒng)的穩(wěn)定性和效率。本文將圍繞三菱PLC的工作模式展開詳細討論,包括RUN模式和STOP模式的特
    的頭像 發(fā)表于 06-18 09:32 ?2263次閱讀

    三菱PLC三菱觸摸屏的通訊設(shè)置

      隨著工業(yè)自動化技術(shù)的不斷發(fā)展,三菱PLC(Programmable Logic Controller,可編程邏輯控制器)與三菱觸摸屏的組合已成為許多自動化系統(tǒng)中不可或缺的部分。它們之間的通訊設(shè)置
    的頭像 發(fā)表于 06-18 09:12 ?5441次閱讀

    三菱plc485程序如何寫

    RS-485是一種常見的通訊方式。下面將詳細介紹如何編寫三菱PLC 485程序。 了解三菱PLC 485通訊協(xié)議 在編寫
    的頭像 發(fā)表于 06-16 09:19 ?4279次閱讀

    三菱plc讀取485儀表程序案例教程

    ,實現(xiàn)自動化控制。其中,通過RS-485通信接口與485儀表進行通信是一種常見的應(yīng)用場景。本文將詳細介紹如何使用三菱PLC讀取485儀表的程序案例,包括硬件連接、通信協(xié)議、程序編寫和調(diào)
    的頭像 發(fā)表于 06-16 09:16 ?7036次閱讀

    三菱觸摸屏與三菱PLC連接的方法

    在工業(yè)自動化領(lǐng)域中,觸摸屏與PLC的連接是實現(xiàn)人機交互、設(shè)備監(jiān)控和控制的關(guān)鍵環(huán)節(jié)。三菱觸摸屏與三菱PLC作為業(yè)內(nèi)知名的產(chǎn)品,其連接方法一直備受關(guān)注。本文將詳細介紹
    的頭像 發(fā)表于 06-14 17:18 ?5111次閱讀