2016-01-04 13 views
12

Ho notato un po 'di passaggio tra l'uso di const e l'importazione per le biblioteche di riferimento nelle applicazioni node.js usando la sintassi es6 con Babel.qual è la differenza tra import e const e quale è preferito in commonjs

Qual è il metodo preferito e qual è la differenza tra l'uso di const e l'importazione? Supponendo che si possa importare la stessa libreria in molti file/componenti.

const

const React = require('react') 

importazione

import React from 'react' 

Ecco le definizioni di ciascuna, ma io non sono ancora sicuro di quale utilizzare.

import

L'istruzione import consente di importare funzioni, oggetti o primitive che sono stati esportati da un modulo esterno, un altro script, ecc

const

La dichiarazione const crea una lettura -solo riferimento a un valore. Non significa che il valore che detiene è immutabile, solo che l'identificatore di variabile non può essere riassegnato.

+1

Il secondo deriva dallo standard (ES2015), il primo no. – zerkms

+0

La sintassi 'import' è la nuova sintassi * nativa * ES2015 per il sistema del modulo JavaScript. – Pointy

+1

Quello che stai veramente chiedendo è quale sia la differenza tra Node's e ES2015 import, che lo rende un [duplicato] (http://stackoverflow.com/questions/31354559/using-node-js-require-vs-es6 -import-export) – adeneo

risposta

7

Qual è il metodo preferito e qual è la differenza tra l'utilizzo di const e l'importazione?

Nel 2016 ha senso attenersi allo import poiché questa è la parte dello standard.

Non v'è alcuna ragione tecnica per preferire import oltre require però: tutto ciò che può essere fatto utilizzando require può essere fatto con import e viceversa. In alcuni casi uno sarà più conciso, in un altro - l'altro.

Per riassumere: selezionare quello che si adatta alle convenzioni/consistenza del codice progetto.

+0

Grazie, userò 'import' allora. Ero solo confuso mentre alcune librerie e alcuni esempi di redux stavano usando l'approccio 'const 'che penso per il beneficio percepito che sarebbe di sola lettura. Come hai menzionato nei commenti, ** un identificatore importato non può essere modificato **, il che significa che non vi è alcun vantaggio. Link utili forniti da te [qui] (http://ecma-international.org/ecma-262/6.0/#sec-createimportbinding) e @adeneo [qui] (http://exploringjs.com/es6/ch_modules.html # sec_imports-as-views-on-exports) aiuta a chiarirlo –

+2

Il principale vantaggio dell'approccio 'const' è che funziona nel Nodo 4/5 senza transpiling, il che probabilmente è il motivo per cui l'hai visto in quelli. – loganfsmyth

Problemi correlati