(INDEX) INDEX (2025)

Return to Angular (React and Vue)

   1:  // React
   2:  import { useEffect, useState } from 'react';
   3:   
   4:  function useSSE(url) {
   5:      const [message, setMessage] = useState(null);
   6:   
   7:      useEffect(() => {
   8:          const eventSource = new EventSource(url);
   9:   
  10:          eventSource.onmessage = (event) => {
  11:              setMessage(event.data);
  12:          };
  13:   
  14:          eventSource.onerror = (error) => {
  15:              console.error('SSE error:', error);
  16:          };
  17:   
  18:          return () => {
  19:              eventSource.close();
  20:          };
  21:      }, [url]);
  22:   
  23:      return message;
  24:  }
  25:   
  26:  // Component
  27:  function App() {
  28:      const message = useSSE('http://localhost:3000/sse');
  29:   
  30:      return (
  31:          <div>
  32:              {message && <div>{message}</div>}
  33:          </div>
  34:      );
  35:  }



   1:  // VUE
   2:  const sseMixin = {
   3:      data() {
   4:          return {
   5:              message: null,
   6:          };
   7:      },
   8:      created() {
   9:          this.eventSource = new EventSource('http://localhost:3000/sse');
  10:   
  11:          this.eventSource.onmessage = (event) => {
  12:              this.message = event.data;
  13:          };
  14:   
  15:          this.eventSource.onerror = (error) => {
  16:              console.error('SSE error:', error);
  17:          };
  18:      },
  19:      beforeDestroy() {
  20:          this.eventSource.close();
  21:      },
  22:  };
  23:   
  24:  // Component
  25:  new Vue({
  26:      el: '#app',
  27:      mixins: [sseMixin],
  28:      template: `
  29:          <div v-if="message">{{ message }}</div>
  30:      `,
  31:  });


Comments ( )
Link to this page: http://www.vb-net.com/PushNotification/ReactVue.htm
< THANKS ME>