2016-04-05 2 views
0

Я новичок в redux и испытываю смущение его синтаксисом.Объяснение Синтаксис Redux

В Tutorial - 02_about-state-and-meet-redux я вижу

import { createStore } from 'redux' 

var store = createStore(() => {}) 

Я удивлен, что:

  1. Нет ;, как питон

  2. Что такое () => {}?

  3. Импорт следует за правилом?

  4. Что такое синтаксис Redux?

Frontend javascript не имеет такой синтаксис, и я также проверить Node.js: The Node Beginner Book, который отличается слишком.

Поиск redux grammar ничего не дает.

+1

См ES6 и выше. Они поддерживают то, что ES5 не делает. –

+2

Отсутствует ';' не ES5, ES6 или что-то еще. Они «опциональны» в JS, поскольку первая версия, но не использует их, является ленивой и может привести к очень тяжело отлаживать код. Прочтите это: http://stackoverflow.com/questions/444080/do-you-recommend-using-semicolons-after-every-statement-in-javascript –

ответ

3

Это javascript, но он использует множество функций кровоточащего края, представленных последними спецификациями (известными как ES6 или ES2015). Так как это still not fully supported даже современными браузерами, вы должны использовать трансилер, например babel, для отправки кода.

Подробнее о ES6 here и here.

0

Это ES6 синтаксис и приравненных ниже простой синтаксис:

import { createStore } from 'redux'; 

function actionCreator(){ 
...... 
} 

var store = createStore(action_creator); 

здесь, импортировать только createStore функцию из Redux и функции createStore принять actionCreator в качестве параметра и создать store.

1

Нет; , как python

Точка с запятой не требуется в JavaScript. Лично я всегда использую их. Вы можете найти хорошие статьи, в которых обсуждаются положительные и отрицательные точки с запятой.

Что такое() => {}?

Как уже упоминалось, это ES6 (также известный как ES2015) синтаксис и определяет функцию. Их иногда называют функциями стрелок, и вы можете прочитать о них больше here.

So (a) => {return a * 2; } эквивалентно функции (a) {return a * 2; }

Импорт следует за правилом?

Импорт аналогичен . Вы можете прочитать об этом here и об экспорте here. Они являются частью синтаксиса модуля es6/es2015.

es6/es2015 пока не поддерживается браузерами. Однако использование транспилеров, таких как BabelJS и Traceur, позволяет использовать его сегодня. Я настоятельно рекомендую вам потратить некоторое время на его использование. Это послужило мне для лучшего понимания примеров. Я считаю, что это более чистый синтаксис, но это более субъективная причина, чтобы изучить его.

0

Функция createStore от redux, принимает редуктор, возвращаемый combReducers, и возвращает состояние, доступное для компонентов, определенных в Провайдерах.

пример кода будет выглядеть ..

import allReducers from './YOUR_REDUCER_DIRECTORY' 
var store = createStore(allReducers); 

<Provider store = store> 
<YOUR_COMPONENT i.e. HEADER/> 
</Provider> 

здесь государство будет доступен для компонента. Исходное состояние может быть определено в редукторах.

0

Упрощенный синтаксис здесь вы идете:

const createStore = require('redux').createStore; 
var store = createStore(function() {}) // This takes your reducer and the middlewares