Neues ReactJS Nachrichtenportal

http://reactjs.de/ ist eine neue Webseite, die sich mit der JS-Bibliothek ReactJS beschäftigt und Nachrichten kanalisiert.

http://reactjs.de/posts/react-tutorial charakterisiert es so:

React ist eine JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen. Es wurde 2013 von Facebook unter BSD-Lizenzveröffentlicht und schlägt seitdem immer größere Wellen und beeinflusst nachhaltig die gesamte JavaScript-Frontendlandschaft. Es wird verwendet von Facebook, Instagram, Whatsapp, Yahoo, AirBnB, dem Atom-Editor undvielen anderen mehr.

Offtopic: Flow, statische Typprüfung für JavaScript

Wer viel mit JavaScript arbeitet, wird sich über eine Lösung von FaceBook freuen, die JS-Code statisch prüft, um Typfehler zu finden. Mehr unter ttps://code.prod.facebook.com/posts/1505962329687926/flow-a-new-static-type-checker-for-javascript/ und auf der Hauptseite http://flowtype.org/.

Ein Beispiel:

/* @flow */

function foo(x) {
  return x * 10;
}

foo('Hello, world!');

Führt zu nach dem Aufruf vom Kommandozeilenprogramm flow zum Fehler:

01_HelloWorld/hello.js:7:5,17: string This type is incompatible with 01_HelloWorld/hello.js:4:10,13: number

PersistJS: Lokal im Browser Daten speichern

Zustände von Web-Applikationen können, sofern sie klein sind, im Cookie gespeichert werden. Alles, was jedoch größer als 4 KB ist, wird in der Regel auf der Serverseite abgelegt. Nun haben in den letzten Jahren die Browser-Hersteller lokale Speichermöglichkeiten entwickelt:

  • globalStorage: Firefox 2.0+, Internet Explorer 8
  • localStorage: development WebKit
  • openDatabase: Safari 3.1+
  • userdata behavior: Internet Explorer 5.5+

Daneben gibt es Plugins, etwa von Google (Gears) oder Yahoo. Das dumme bei den Plugins ist jedoch, das diese extra installiert werden müssen. Ihr Vorteil allerdings: Eine standardisierte API. Doch damit kann nun Schluss sein. Mit PersistJS gibt es eine standardisierte API, die von den jeweiligen Browser- und Plugin-APIs abstrahiert. Der Zugriff ist simpel

var store = new Persist.Store('Mein Data Store');
var data = "Daten";
store.set('saved_data', data);
store.get('saved_data', function(ok, val) {
if (ok)
alert('saved data = ' + val);
});
store.remove('saved_data');

PersistJS nutzt nun intern:

  • flash: Flash 8 persistent storage.
  • gears: Google Gears-based persistent storage.
  • localstorage: HTML5 draft storage.
  • whatwg_db: HTML5 draft database storage.
  • globalstorage: HTML5 draft storage (old spec).
  • ie: Internet Explorer userdata behaviors.
  • cookie: Cookie-based persistent storage.