🏠
dev-angelist
HomeGitHubPortfolioTwitter/XMediumCont@ct
  • 🏠Home
  • πŸ“’Certification Notes
    • Certified Ethical Hacker (CEH) Practical
    • CRTP
    • eWPTXv3
    • eCPPTv3
    • eWPTv2
    • eJPTv2
  • ✍️WRITEUPS & WALKTHROUGHS
    • TryHackMe (THM)
    • HackTheBox (HTB)
    • VulnHub
    • DockerLabs.es
    • PortSwigger - Web Sec Academy
    • HomeMade Labs
  • πŸ•ΈοΈWEB
    • eWPTXv3
    • eWPTv2
    • WAPT
    • DVWA
    • Secure Bank
    • Mutillidae II
    • WebSafeHub (WSH)
    • PortSwigger - Web Sec Academy
  • Common Services Pentest
    • Web Services - 80/443/8080
      • Tomcat
        • Lab Setup & Configuration
        • Enumeration
        • Exploitation
        • Mitigation & Hardening
    • SMB - 139/445
  • πŸ‘©β€πŸ’»CODING
    • 🐍Python
      • Python Offensive
      • Email Header Analyzer
      • Dir-Brute
      • Port-Scanner
      • Finger User Enumeration
    • DevSecOps
    • πŸ”ΉPowershell
  • πŸ”΄Offensive Security
    • Active Directory (AD)
      • CRTP
      • AD HomeMade Lab
  • Privilege Escalation
    • Windows Privilege Escalation
  • πŸ”Crypto & AI/ML
    • Crypto & Blockchain
      • Blockchain Security
        • Blockchain Architecture
          • 1.1 Characteristics and Features
          • 1.2 Core Components
          • 1.3 Consensus Algorithm
          • 1.4 Cryptography
          • 1.5 Cryptocurrency
        • Front-end Risks
          • 2.1 MFA and Blockchain
          • 2.2 Front-end
          • 2.3 OWASP Modeling for Blockchain
          • 2.4 Wallet Attacks
          • 2.5 Client Vulnerabilities
        • Back-end Risks
          • 3.1 Consensus Vulnerabilities
          • 3.2 Mining Pool Vulnerabilities
          • 3.3 Network Vulnerabilities
            • 3.3.1 DoS/DDoS/BDoS Attacks
            • 3.3.2 Delay Attacks
            • 3.3.3 Partition Attacks
            • 3.3.4 Sybil Attacks
            • 3.3.5 Time Jacking
            • 3.3.6 Transaction Attacks
        • Mining-Risks
          • 4.1 Mining Overview
          • 4.2 Proof of Stake Post Merge Ethereum
          • 4.3 Crypto Mining Malware (Cryptojacking)
          • 4.4 Zero Trust Models
          • 4.5 Byzantine Fault Tolerance
        • Blockchain as a Service
    • AI/ML Pentest
  • ACTIVE DIRECTORY
    • AD Enumeration
  • Guides & Articles
    • My Articles
    • Guides & Tutorials
      • Burp Suite - Configuration
      • Quickemu - VM
      • Setting Up SSH Keys
      • Building an AD Lab
      • Work Guidelines
  • Windows
    • Windows Enumeration
    • Windows Privilege Escalation
  • INTELLIGENCE GATHERING
    • OSINT
  • LINUX (tbd)
    • Linux Enumeration
    • Linux Privilege Escalation
Powered by GitBook
On this page
  • Front-End Development
  • React
  • Angular
  • Vue.js
  • Comparison of React, Angular, and Vue.js
  1. Crypto & AI/ML
  2. Crypto & Blockchain
  3. Blockchain Security
  4. Front-end Risks

2.2 Front-end

Front-End Development

Front-end development refers to the part of web development that deals with the user interface (UI) and user experience (UX). It involves creating the layout, design, structure, and interactivity of a website or web application. Front-end developers focus on the client-side of the application, meaning everything the user interacts with directly in their browser.

Key aspects of front-end development include:

  • HTML (HyperText Markup Language): Used to structure content.

  • CSS (Cascading Style Sheets): Used for styling and layout.

  • JavaScript: The programming language that enables interactivity (e.g., handling button clicks, form submissions, or animations).

  • Responsive Design: Ensuring websites work well on a variety of devices and screen sizes.

Modern front-end development often involves the use of JavaScript frameworks and libraries that enhance development efficiency, structure the code better, and provide powerful tools for creating complex applications.


React

React is a JavaScript library for building user interfaces, primarily for single-page applications (SPAs). It was developed by Facebook and has become one of the most popular tools for front-end development.

Key Features of React:

  • Component-Based Architecture: React applications are built using components, which are reusable, self-contained pieces of UI. Each component can manage its own state and logic.

  • Virtual DOM: React uses a virtual DOM (Document Object Model) to optimize rendering. When the state of a component changes, React first updates the virtual DOM and then compares it to the actual DOM to make the most efficient updates.

  • Declarative Syntax: React allows developers to describe the UI in a declarative way (i.e., "what" the UI should look like for a given state), making the code more readable and easier to maintain.

  • One-Way Data Binding: React follows a unidirectional data flow, which makes it easier to debug and understand how data changes throughout the application.

  • Ecosystem: React has a rich ecosystem of libraries and tools (e.g., React Router for navigation, Redux for state management) that extend its functionality.

Advantages:

  • Fast rendering with the virtual DOM.

  • Reusable components.

  • Strong community and widespread adoption.

  • Easy integration with other libraries or existing projects.

Disadvantages:

  • Requires learning JSX (JavaScript XML), a syntax extension.

  • Steeper learning curve for beginners due to state management and advanced concepts.

  • Heavy reliance on third-party libraries for advanced functionality (like state management).


Angular

Angular is a platform and framework for building client-side applications, developed by Google. Unlike React, which is just a library for building UIs, Angular is a full-fledged framework that provides a comprehensive solution for building web applications.

Key Features of Angular:

  • Two-Way Data Binding: Angular automatically synchronizes the data between the model (data) and the view (UI), so any changes to the model are immediately reflected in the view, and vice versa.

  • Component-Based Architecture: Like React, Angular also follows a component-based architecture. Each component encapsulates its own HTML, CSS, and logic.

  • Directives: Angular allows you to extend HTML with custom elements (directives) that help you manipulate the DOM in a declarative manner.

  • Dependency Injection (DI): Angular's DI system allows components and services to declare dependencies, which Angular automatically resolves and injects. This makes the application easier to maintain and test.

  • RxJS: Angular uses RxJS (Reactive Extensions for JavaScript) for handling asynchronous operations and working with streams of data, providing a powerful way to manage complex data flows and events.

Advantages:

  • Full-featured framework that handles routing, form validation, state management, HTTP requests, and more.

  • Built-in support for TypeScript, providing type safety and improved development experience.

  • Strong tooling, including the Angular CLI (Command Line Interface) for scaffolding and development.

  • Two-way data binding simplifies synchronization between model and view.

Disadvantages:

  • Steeper learning curve due to the comprehensive nature of the framework.

  • Heavier bundle size compared to lighter libraries like React or Vue.js.

  • May be overkill for small projects, where simpler frameworks or libraries could suffice.


Vue.js

Vue.js is a progressive JavaScript framework for building user interfaces. It is designed to be incrementally adoptable, meaning you can integrate it into existing projects gradually, or use it to build entire single-page applications.

Key Features of Vue.js:

  • Reactivity: Vue’s reactivity system makes it easy to manage and track changes to data, and automatically updates the DOM whenever the data changes.

  • Declarative Rendering: Vue uses templates (HTML-based syntax) to declaratively render data into the DOM, making it easier to work with and understand.

  • Component-Based Architecture: Like React and Angular, Vue also uses components to encapsulate and reuse UI elements.

  • Single-File Components: Vue components can be written as a single .vue file, containing HTML, CSS, and JavaScript, improving developer experience by keeping everything in one place.

  • Vue CLI: Vue provides an easy-to-use Command Line Interface (CLI) for scaffolding, building, and testing Vue applications, streamlining development.

Advantages:

  • Flexible: Can be used for small components in existing projects or to build full-scale SPAs.

  • Lightweight: Vue.js has a small file size, making it fast to load and reducing development overhead.

  • Easy to Learn: Vue has a gentle learning curve, especially for developers familiar with HTML, CSS, and JavaScript.

  • Good Documentation: Vue has one of the best documentations, making it beginner-friendly.

  • Integration-Friendly: Works well in small or large-scale applications, and can be easily integrated into existing projects without a complete rewrite.

Disadvantages:

  • Smaller community and ecosystem compared to React and Angular, though it is rapidly growing.

  • Fewer corporate backers (no large companies like Google or Facebook supporting it).


Comparison of React, Angular, and Vue.js

Feature

React

Angular

Vue.js

Type

Library for building UIs

Full-fledged framework

Framework (progressive)

Learning Curve

Moderate (requires understanding JSX, state management)

Steep (comprehensive, requires learning Angular-specific concepts)

Gentle (easy to start, good docs)

Data Binding

One-way data binding

Two-way data binding

One-way (reactivity with declarative syntax)

Architecture

Component-based

Component-based

Component-based

Tooling

Rich ecosystem, but requires additional tools (e.g., for routing)

Built-in tools (CLI, testing, forms, etc.)

Vue CLI, easy setup

Community

Very large and active

Large, with corporate backing (Google)

Growing rapidly, but smaller than React and Angular

Performance

Excellent (virtual DOM)

Good (but can be heavy due to two-way binding)

Excellent (lightweight and fast)

Use Cases

SPAs, large apps, mobile apps (React Native)

Enterprise-level apps, complex apps

Flexible: small apps or full SPAs

Previous2.1 MFA and BlockchainNext2.3 OWASP Modeling for Blockchain

Last updated 6 months ago

πŸ”