React

Logotyp för React Logotyp för React Logotyp för React Logotyp för React

Typer

  • React Native

Moduler

Tillägg för Mozilla Firefox Tillägg för Google Chrome

Webbplats

Github.io Facebook React Boilerplate https://fb.me/react-devtools

HTML och Javascript

<script src="//cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.min.js"></script>

React is a declarative, efficient, and flexible JavaScript library for building user interfaces.

Förkortningar

  • NDK - Native Development Kit
  • JSX - JavaScript XML
  • HMR - Hot Module Replacement
  • FAB - floating action button
  • SSR - Server Side Rendering

Förkortningar

  • TSX - TypeScript XML
Logotyp för Facebook

Företag

Filändelser

  • .ts
  • .tsx
Logotyp för JavaScript Logotyp för Typescript

Programmeringsspråk

Logotyp för Expo client app

Applikationer

Logotyp för Material UI

Ramverk

Uppsättning med NPM

npm i create-react-app npx create-react-app . --use-npm --typescript "use strict"; <GreenBubble noMarginLeft={true} /> margin-left: ${props => props.noMarginLeft ? '0' : '5px'}; ${({ level }) => colorsBasedOnLevel[level]}; ${(props) => colorsBasedOnLevel[props.level]};

How to combine multiple inline style objects to a Component

<div style={{...styles1, ...styles2}} />

How to add multiple classes to a Component

<div className={[styles.class1, styles.class2].join(' ')} />

JSON som görs om till CSS

const divStyle = { backgroundColor: '#000', color: '#fff' }; function HelloWorldComponent() { return <div style={divStyle}>Hello World!</div>; }

Loop för lista (länk)

render: function() { const elements = ['one', 'two', 'three']; return ( <ul> {elements.map((value, index) => { return <li key={index}>{value}</li> })} </ul> ) } Blodpropp

Använd en komponent App.tsx

import Table from './Table.tsx'; <Table data={locations} />

Skapa en komponent Table.tsx

function Table(props) { export default Table;

Skapa en klass-komponent Table.tsx

import React, { Component } from 'react'; class Table extends Component { constructor(props) { super(props); } render() { return ( {this.props.data}
); } } export default Table;

Hämta JSON från filer

import { text } from './data.json'; console.log(text);

React component closing tag

<Component /> = <Component></Component> <Component foo="bar" /> = <Component foo="bar"></Component> <Component children={<span>foo</span>}></Component> = <Component><span>foo</span></Component>

Example

messagesContainer.tsx

import { Jimmy } from '../../layout/layout'; ... return <Jimmy />;

layout.tsx

import { withStyles, WithStyles } from '@material-ui/core'; import React from 'react'; import { styles } from './styles'; interface Props extends WithStyles {} function Kevin(props: Props) { const { classes } = props; return <div className={classes.fullformat}>Henrik</div>; } export const Jimmy = withStyles(styles)(Kevin);

styles.tsx

import { withStyles, WithStyles } from '@material-ui/core'; import React from 'react'; import { styles } from './styles'; interface Props extends WithStyles {} function Kevin(props: Props) { const { classes } = props; return <div className={classes.fullformat}>Henrik</div>; } export const Jimmy = withStyles(styles)(Kevin); Logotyp för Angular

Liknande

Hooks

Ord

Moduler

  • Komponenter

Negativt

Logotyp för Webpack Logotyp för NPM - Node Package Manager Logotyp för BABEL Logotyp för BABEL

Delar

Begrepp

  • Action
  • Dispatcher
  • Reducer

  • Race condition

Fil

state/rootReducer.js Clusterfuck

Anledningar till att inte använda React

  1. Onödig komplexitet, när man frågar enkla frågor får man oftast långa otydliga svar
  2. Komponenter återanvänds ofta inte
  3. Styling begränsas eller görs med Javascript snarare än CSS
  4. Frångår den webb-standard som finns
  5. Använder saker som inte är standard än
  6. Måste kompileras transpileras, gör att applikationen tar längre tid att utveckla, men att den oftast blir långsammare
  7. Ofta problem med prestanda i större applikationer
  8. Kräver tillägg för att inspekteras
  9. Fungerar inte i Internet explorer
  10. Att använda Typeskript leder till mer kod och falsk trygghet kring typning
  11. Konsistent design och komponenter har inget med komponenter i React att göra
  12. Många som ingen har koll på och som slöar ned applikationen
  13. Styling med Javascript istället för CSS
  14. Stora uppdateringar kommer relativt ofta och förebygger en långsiktig kodbas
  15. Ständiga diskussioner kring vad som är en dynamisk kontra optimerad komponent
  16. Svårigheter att lösa komplexa problem som uppstår som annars hade varit självklara
  17. Data som måste propagera genom diverse trädstrukturer/hierarkier av "komponenter", gör att kod som är tänkt att enkapsuleras skapar komplexa beronenden mellan varandra
  18. Logik i front end som borde legat i back end
  19. Tester i front end som testar design snarare än vilken data som faktiskt visas
  20. Används ofta av personer som oftast hoppar på nya obeprövade tekniker så fort dom släpps, och som har bristande kunskaper kring webbutveckling
  21. Använda ofta av konsulter eftersom de får betalt per timme
  22. Många projektledare och kravställare tror att man måste använda ett ramverk för en större applikation
  23. Projekt som aldrig blir färdiga
  24. Försätter företag i konkurs
  25. Skrollbars från helvetet ?
  26. React används ofta av personer som har större erfarenhet av programmering än webbutveckling
  27. Den som har erfarenhet av webbutveckling vet att det snart kommer något som är ännu "häftigare", exempelvis hur många använder jQuery idag jämfört med för 10 år sedan?
  28. WSOD istället för felmeddelande
  29. Genererar ofta vaga eller inga felmeddelanden
  30. Slutar ofta fungera om man inte har senaste webbläsare

Sammanfattning

  • Prestanda
  • Hastighet
  • Effektivitet
  • Långsiktighet
  • Simplicitet
  • Prestanda
  • Dynamik
  • Standard

ASCII art för Material UI

███╗ ███╗ ██╗ ██╗ ██████╗ ████╗ ████║ ██║ ██║ ██╔═╝ ██╔████╔██║ ██║ ██║ ██║ ██║╚██╔╝██║ ██║ ██║ ██║ ██║ ╚═╝ ██║ ╚██████╔╝ ██████╗ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ Arrow function Sagoskog

Kuriosa

Logotyp för Redux Form Logotyp för Flux Logotyp för Redux Logotyp för RxJS Logotyp för RxJS Logotyp för React sagas Logotyp för Styled components Logotyp för Storybook

Externa länkar

Logotyp för Redux DevTools Skor från Nike Legend React