Nei, V8 er Googles javascript motor, det er den som kjører javascript på alle nettsidene du besøker, dersom du bruker Chrome,
Ettersom motoren er åpen kildekode, er det også den som benyttes i node.js, men det er altså selve motoren som tolker og kjører javascript.
Det du lenker til, er pussig nok en integrering av V8 i PHP, man har altså portet hele javascript motoren til PHP, noe som teknisk sett ikke er noe stress ettersom V8 er skrevet i C++, men det virker litt pussig.
React er et rammeverk som er skrevet i JavaScript, akkurat sånn som jQuery og/eller Angular også er skrevet i javascript.
React skal liksom gjøre det enklere å lage interaktive nettsider, hvor HTML kan hostes opp i hele modeller, direkte som komponenter og klasser, med diverse handlinger osv. som kan gjenbrukes eller lages i løkker og den slags.
Man kan for eksempel gjøre noe sånt
PHP:
var Knapp = React.createClass({
getInitialState: function() {
return {trykket: false};
},
handleClick: function(event) {
this.setState({trykket: !this.state.trykket});
},
render: function() {
var text = this.state.trykket ? 'liker' : 'liker ikke';
return (
<p onClick={this.handleClick}>Du {text} dette.Klikk her nå!</p>
);
}
});
ReactDOM.render( <Knapp/ > , document.getElementById('example'));
Legg merke til hvordan HTML (egentlig XML) er skrevet rett i JavaScipt, dette kalles JSX og er egentlig ganske fiffige greier, og hvordan man så enkelt lager en "toggle" funksjon som automatisk bytter om tekst osv, du kan teste eksemplet her
https://jsfiddle.net/mwhmaLgz/
Ettersom Babel også benyttes, en transpiler som oversetter ES2015, den nye javascript standarden som er i ferd med å innføres i alle nettlesere (og andre steder), så kan vi forsøke å skrive litt ES2015 og se at det også virker.
Dette blir kanskje helt Gresk for noen, men er på vei inn i en nettleser nær deg ...
PHP:
"use strict"
let a, b;
function test(arg1 = 'test', arg2) {
b = arg1; a = arg2;
}
let x = ['Hello', 'World'].map(x => x.toUpperCase());
const y = 'Webforumet';
test(...x);
[a, b] = [b, a];
var o = { [a]: y, b: b };
let arr = Object.keys(o).map(k => k === 'b' ? o[k] : k);
ReactDOM.render(<div>{arr.join(' ')}</div>, document.getElementById('example'));
Her har jeg tatt med litt av hvert, slik som destructuring, dynamiske nøkler, setting av parametere i funksjoner, spread, arrow funksjoner osv.
Sett bort i fra den nederste linjen, som altså er React, er resten helt standard JavaScript (ES2015)
Det meste av dette er allerede støttet i nyeste versjon av V8, som først vil være benyttet i Chrome 49, som er rett rundt hjørnet, men fordi vi bruker Babel kan vi benytte ES2015 syntaks i nettlesere som ikke støtter det enda ..... eksempel
https://jsfiddle.net/mwhmaLgz/3/