0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

PLC工控专栏 来源:加密狗破解 作者:加密狗破解 2022-02-13 16:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

三菱PLC程序解密加密怎么破解,【电;I7I54833762】登录口令破解React Hooks 是 React 团队在两年前的 16.8 版本推出的一套全新的机制。作为最主流的前端框架,React 的 API 十分稳定,这次更新的发布,让众多恐惧新轮子的前端大佬们虎躯一震,毕竟每一次更新又是高成本的学习,这玩意到底好使么?
答案是好用的,对于 React 的开发者而言,只是多了一个选择。过去的开发方式是基于Class组件的,而hooks是基于函数组件,这意味着 这两种开发方式可以并存 ,而新的代码可以根据具体情况采用 Hooks 的方式来实现就行了。这篇文章主要就来介绍一下 Hooks 的优势 和 常用的几个钩子函数 。
Hooks的优势
1.类组件的不足

代码量多 :相较于函数组件的写法,使用类组件代码量要略多一点,这个是最直观的感受。

this指向:类组件中总是需要考虑this的指向问题,而函数组件则可以忽略。

趋向复杂难以维护 :在高版本的React中,又更新了一些生命周期函数,因为这些函数互相解耦,很容易造成分散不集中的写法,漏掉关键逻辑和多了冗余逻辑,导致后期debug困难。相反,hooks可以把关键逻辑都放在一起,不显得那么割裂,调试起来也易懂一点。

状态逻辑难复用 :在组件之间复用状态逻辑很难,可能要用到 render props (渲染属性)或者 HOC (高阶组件),但无论是渲染属性,还是高阶组件,都会在原先的组件外包裹一层父容器(一般都是 div 元素),导致层级冗余。

2. Hooks带来的好处

逻辑复用
在组件之前复用状态逻辑,往往需要借助高阶组件等复杂的设计模式,这些高级组件会产生冗余的组件节点,让调试变得困难,下面用一个demo来对比一下两种实现方式。

Class

在class组件场景下,定义了一个高阶组件,负责监听窗口大小变化,并将变化后的值作为 props 传给下一个组件。
const useWindowSize = Component => {
// 产生一个高阶组件 HOC,只包含监听窗口大小的逻辑
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() {
// 将窗口大小传递给真正的业务逻辑组件
return ;
}
}
return HOC;
};
复制代码
接下来可以在自定义组件中可以调用 useWindowSize 这样的函数来产生一个新组件,并自带 size 属性,例如:
class MyComponent extends React.Component{
render() {
const { size } = this.props;
if (size === "small") return ;
else return ;
}
}
// 使用 useWindowSize 产生高阶组件,用于产生 size 属性传递给真正的业务组件
export default useWindowSize(MyComponent);
复制代码
下面看下Hooks的实现方式

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;
};
复制代码
使用:
const Demo = () => {
const size = useWindowSize();
if (size === "small") return ;
else return ;
};
复制代码
从上面的例子中通过 Hooks 的方式对窗口大小进行了封装,从而将其变成一个可绑定的数据源。这样当窗口大小发生变化时,使用这个 Hook 的组件就都会重新渲染。而且代码也更加简洁和直观,不会产生额外的组件节点,也不显得那么冗余了。

业务代码更加聚合

下面举一个最常见的计时器的例子。

class

let timer = null
componentDidMount() {
timer = setInterval(() => {
// ...
}, 1000)
}
// ...
componentWillUnmount() {
if (timer) clearInterval(timer)
}
复制代码

Hooks

useEffect(() => {
let timer = setInterval(() => {
// ...
}, 1000)
return () => {
if (timer) clearInterval(timer)
}
}, [//...])
复制代码
Hooks的实现方式能让代码更加集中,逻辑也更清晰。

写法简洁

这个就不举例了,可以从字面意思理解,使用函数组件确实能少些很多代码,懂得都懂,嘻嘻~
几个内置Hooks的作用以及使用思考
useState :让函数组件具有维持状态的能力
const[count, setCount]=useState(0);
复制代码
优点:
让函数组件具有维持状态的能力,即:在一个函数组件的多次渲染之间,这个 state 是共享的。便于维护状态。
缺点:
一旦组件有自己状态,意味着组件如果重新创建,就需要有恢复状态的过程,这通常会让组件变得更复杂。
用法:

useState(initialState) 的参数 initialState 是创建 state 的初始值。


它可以是任意类型,比如数字、对象、数组等等。


useState() 的返回值是一个有着两个元素的数组。第一个数组元素用来读取 state 的值,第二个则是用来设置这个 state 的值。


在这里要注意的是,state 的变量(例子中的 count)是只读的,所以我们必须通过第二个数组元素 setCount 来设置它的值。


如果要创建多个 state ,那么我们就需要多次调用 useState。

什么样的值应该保存在 state 中?
通常来说,我们要遵循的一个原则就是:state 中不要保存可以通过计算得到的值 。

从 props 传递过来的值。有时候 props 传递过来的值无法直接使用,而是要通过一定的计算后再在 UI 上展示,比如说排序。那么我们要做的就是每次用的时候,都重新排序一下,或者利用某些 cache 机制,而不是将结果直接放到 state 里。
从 URL 中读到的值。比如有时需要读取 URL 中的参数,把它作为组件的一部分状态。那么我们可以在每次需要用的时候从 URL 中读取,而不是读出来直接放到 state 里。
从 cookie、localStorage 中读取的值。通常来说,也是每次要用的时候直接去读取,而不是读出来后放到 state 里。

useEffect:执行副作用

useEffect(fn, deps);

useEffect ,顾名思义,用于执行一段副作用。
什么是副作用?
通常来说,副作用是指一段和当前执行结果无关的代码。比如说要修改函数外部的某个变量,要发起一个请求,等等。
也就是说,在函数组件的当次执行过程中, useEffect 中代码的执行是不影响渲染出来的 UI 的。
对应到 Class 组件,那么 useEffect 就涵盖了 ComponentDidMount、componentDidUpdate 和 componentWillUnmount 三个生命周期方法。不过如果你习惯了使用 Class 组件,那千万不要按照把 useEffect 对应到某个或者某几个生命周期的方法。你只要记住,useEffect 是每次组件 render 完后判断依赖并执行就可以了。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45361

    浏览量

    664369
  • plc
    plc
    +关注

    关注

    5045

    文章

    14461

    浏览量

    483932
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开疆智能ModbusTCP转Devicenet网关连接三菱PLC与ABB机器人配置案例

    本案例是三菱PLC通过开疆智能ModbusTCP转Devicenet网关连接ABB机器人的配置案例,具体分为部分设置,分别为三菱PLC设置
    的头像 发表于 06-23 17:24 989次阅读
    开疆智能ModbusTCP转Devicenet网关连接<b class='flag-5'>三菱</b><b class='flag-5'>PLC</b>与ABB机器人配置案例

    如何破解三菱PLC与西门子PLC的通讯难题

    在工业自动化领域,不同品牌PLC之间的通讯一直是工程师们关注的焦点。三菱PLC与西门子PLC作为市场主流设备,常因协议差异导致数据交互困难。当现场需要将
    的头像 发表于 06-09 17:14 835次阅读
    如何<b class='flag-5'>破解</b><b class='flag-5'>三菱</b><b class='flag-5'>PLC</b>与西门子<b class='flag-5'>PLC</b>的通讯难题

    三菱PLC与变频器通讯案例

    在工业自动化控制系统中,PLC(可编程逻辑控制器)与变频器的组合应用极为普遍。这种组合不仅提高了生产效率,还增强了系统的灵活性和可靠性。三菱PLC以其卓越的性能和广泛的应用基础,成为众多自动化控制
    的头像 发表于 02-02 14:45 1778次阅读

    格电子新品 三菱Q系列PLC转网口

    三菱Q系列PLC转网口 型号:SG-Q-210 功能概述 本产品用于三菱 Q0x/Q0xU/Q0xUD  系列的 PLC 拓展网口功能,为满足工厂建立现代化网络 监控系统而设计,网口支
    的头像 发表于 01-23 16:06 973次阅读
    <b class='flag-5'>三</b>格电子新品 <b class='flag-5'>三菱</b>Q系列<b class='flag-5'>PLC</b>转网口

    三菱PLC常用指令说明

    三菱PLC(Programmable Logic Controller,可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备。它通过执行用户编写的程序来控制机械设备或生产过程。以下是一些
    的头像 发表于 12-26 18:04 9449次阅读

    三菱PLC在工业自动化中的作用

    在当今的工业自动化领域,三菱PLC(Programmable Logic Controller)因其可靠性、灵活性和强大的功能而广受青睐。作为工业自动化的核心组件,三菱PLC在提高生产
    的头像 发表于 12-26 17:56 1831次阅读

    三菱PLC编程语言解析

    三菱电机(Mitsubishi Electric)是全球知名的自动化和制造解决方案供应商,其PLC(可编程逻辑控制器)产品广泛应用于工业自动化领域。三菱PLC编程语言主要基于国际标准I
    的头像 发表于 12-26 17:36 2282次阅读

    三菱PLC自动化控制应用领域

    在现代工业生产中,自动化控制技术扮演着至关重要的角色。三菱电机作为自动化技术的先驱之一,其PLC产品以其高可靠性、高性能和易用性在全球范围内被广泛采用。 1. 制造业 制造业是PLC应用最广泛的领域
    的头像 发表于 12-26 17:34 3194次阅读

    三菱PLC伺服控制系统介绍

    在现代工业自动化领域,三菱电机以其高质量和可靠性而闻名。三菱PLC伺服控制系统是实现精确运动控制和高效生产的关键技术之一。 一、三菱PLC
    的头像 发表于 12-26 17:32 2528次阅读

    三菱PLC产品型号及规格

    三菱电机(Mitsubishi Electric)是全球知名的自动化和控制产品制造商,其PLC(可编程逻辑控制器)产品广泛应用于工业自动化领域。 1. iQ-R系列 iQ-R系列 是三菱电机的高端
    的头像 发表于 12-26 16:50 1.1w次阅读

    三菱PLC通讯协议详细解析

    三菱PLC(Programmable Logic Controller)是一种广泛应用于工业自动化领域的可编程逻辑控制器。它通过特定的通讯协议与各种设备进行数据交换。 1. 主要特点 三菱PL
    的头像 发表于 12-26 16:48 3809次阅读

    三菱PLC与西门子PLC比较

    三菱电机(Mitsubishi Electric)和西门子(Siemens)都是全球知名的自动化和控制系统供应商,它们各自生产的PLC(可编程逻辑控制器)广泛应用于工业自动化领域。 1. 品牌历史
    的头像 发表于 12-26 16:46 4474次阅读

    格电子新品 三菱FX系列PLC转网口

    三菱FX系列PLC转网口 型号:SG-FX-210 本产品用于三菱 FX1N/1S/2N/3S/3G/3GC/3U/3UC 系列的PLC拓展网口功能,为满足工厂建立现代化网络监控系统而
    的头像 发表于 12-24 15:21 1025次阅读
    <b class='flag-5'>三</b>格电子新品 <b class='flag-5'>三菱</b>FX系列<b class='flag-5'>PLC</b>转网口

    浅谈加密芯片的一种破解方法和对应加密方案改进设计

    使用Key’对密文数据Data’解密得到明文数据Data。主MCU的FUNC调用Data后程序就能正常使用了。 上述加密方案貌似安全可靠,但实际上对于经验丰富的黑客来说破解难度不大。
    发表于 12-20 15:31

    浅谈加密芯片的一种破解方法和加密方案改进设计

    使用Key’对密文数据Data’解密得到明文数据Data。主MCU的FUNC调用Data后程序就能正常使用了。 上述加密方案貌似安全可靠,但实际上对于经验丰富的黑客来说破解难度不大。
    发表于 12-20 15:10