2016-10-24 3 views
-1

Я новичок в реакции. Я хочу знать Существует ли эквивалент для угловых услуг, таких как $rootScop, $q, $webSocket, ... в реакцииJs?Картирование AngularJs кодов ReactJs?

.service('a', function ($rootScope, $location, $q, $webSocket) { 
    this.init = function() { 
     b() 
     c() 
    } 

Например, параметры кода выше того, что эквивалентно в реакции? Я знаю, что эквивалентный $ scope в реакции - this.state.

ответ

0

$ rootScope -> это глобальный объект сферы в угловатом, в реакции мы используем восстановители для хранения данных, которые будут доступны для всех компонентов

$ q-> мы имеем Q библиотеки же, как $ д в реакции

$ расположение -> у нас есть переходные/история внутри экземпляра класса/компонентов

$ webScocket-> т здесь являются несколько модулей https://blog.pusher.com/making-reactjs-realtime-with-websockets/

+0

Q библиотека: ES6 обещание? ИЛИ реагировать-q? –

+0

вы можете использовать response-q, который является модулем npm, который позволяет вам создать собственное обещание/разрешить программирование синхронного программирования. –

1

Там нет такого понятия, как услуги в реакция

вот альтернативы.

  1. $ rootscope -> state, вы можете поделиться им через компоненты. (Вы можете использовать сокращение для управления состоянием, философия которого является одним из истинных источников данных).
  2. $ q -> Es6 Promise
  3. $ websocket -> html5 websocket.

Что-то похожее на обслуживание - вы можете написать класс или функцию, которая принимает все необходимые сервисы в качестве параметров, и вы можете называть ее любой, экспортируя ее.

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

В service.js

const myService = (...otherServices) => { 
    doStuff1(); 
    doStuff2(); 
    return { 
     ...items 
    } 
} 
export default myService; 

В component.js

вы можете импортировать его

import myService from './service'; 
import React from 'react'; 
class testComponent extends React.Component { 
    constructor(props){ 
     super(props); 
     this.data = myService().getData(); //just an example. 
    } 
    render(){ 
     return (
      <div>{this.data}</div> 
     ); 
    } 
} 
+0

'$ http' => axios (https://github.com/mzabriskie/axios). Есть и другие, но этот будет знаком с '$ http'. –

+0

Это всего лишь одна из альтернатив, о которых я могу вспомнить. есть много альтернатив, которые мы можем использовать, и новые продолжают поступать. – Neel