<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: decker</title>
    <description>The latest articles on Forem by decker (@decker67).</description>
    <link>https://forem.com/decker67</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F868649%2F9eccc4b7-5fd2-473b-9567-a68a2eef9822.jpeg</url>
      <title>Forem: decker</title>
      <link>https://forem.com/decker67</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/decker67"/>
    <language>en</language>
    <item>
      <title>No more State Management with Signals</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Sun, 31 Dec 2023 16:12:40 +0000</pubDate>
      <link>https://forem.com/decker67/no-more-state-management-with-signals-5ald</link>
      <guid>https://forem.com/decker67/no-more-state-management-with-signals-5ald</guid>
      <description>&lt;p&gt;State management and I have never been on good terms. The sheer amount of boilerplate code and the usage of strings during development have always been pain points for me. At its worst, the entire algorithm can be scattered across the entire source code, making it challenging to decipher the application's behavior and when the firing stops. Consequently, I only resort to using state management when absolutely necessary and make a conscious effort to avoid it wherever possible.&lt;/p&gt;

&lt;p&gt;Recently, a new star has emerged on the horizon that seems poised to replace traditional state management. It appears to be more straightforward to comprehend and requires less code. What are your thoughts on this? Do you believe the era of traditional state management is coming to an end, and if not, what factors are contributing to its endurance?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>signal</category>
      <category>state</category>
    </item>
    <item>
      <title>Is programming in TypeScript simply another excuse not to write test in JavaScript?</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Wed, 04 Jan 2023 21:53:58 +0000</pubDate>
      <link>https://forem.com/decker67/is-ts-simply-another-excuse-not-to-write-test-in-js-5ca0</link>
      <guid>https://forem.com/decker67/is-ts-simply-another-excuse-not-to-write-test-in-js-5ca0</guid>
      <description>&lt;p&gt;I know TS and i know JS and I prefer JS over TS because of multiple reasons. &lt;/p&gt;

&lt;p&gt;Reading posts where people tells us why it is a good idea to use TS ends with types makes programms more stable because the TS compiler helps to avoid errors at build time.&lt;/p&gt;

&lt;p&gt;But this can even better be done with tests, I think.&lt;br&gt;
Tests can describe behaviour and the structure of your JS and that includes the types.&lt;/p&gt;

&lt;p&gt;If you add an attribute to an object, your tests should show the problem and so on.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Homework: Brackets Check in JS</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Tue, 06 Dec 2022 21:33:25 +0000</pubDate>
      <link>https://forem.com/decker67/homework-brackets-check-in-js-1bck</link>
      <guid>https://forem.com/decker67/homework-brackets-check-in-js-1bck</guid>
      <description>&lt;p&gt;I recentliy saw a homework for students in which you should write a function that gives true if a string with brackets of different types closes brackets accordingly otherwise false.&lt;/p&gt;

&lt;p&gt;My first solution not using a stack was this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const openBrackets = '([{'
const closingBrackets = ')]}'

function checkBrackets (string) {
  let bracketsStack = ''
  for (let i = 0; i &amp;lt; string.length; i++) {
    const char = string[i]
    if (openBrackets.includes(char)) {
      bracketsStack += char
    } else if (closingBrackets.includes(char)) {
      const lastBracket = bracketsStack[bracketsStack.length - 1]
      if ((lastBracket === '(' &amp;amp;&amp;amp; char !== ')') ||
          (lastBracket === '{' &amp;amp;&amp;amp; char !== '}') ||
          (lastBracket === '[' &amp;amp;&amp;amp; char !== ']')) {
        return false
      }
      bracketsStack = bracketsStack.substring(0, bracketsStack.length - 1)
    }
  }
  return true
}

console.log(checkBrackets('()()')) // true
console.log(checkBrackets('([])')) // true
console.log(checkBrackets('([)]')) // false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But it looks a bit ugly using the big if and I created a second one using a map, to make it shorter and easier, I would think.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const brackets = {
  '(': ')',
  '{': '}',
  '[': ']',
}
const openingBrackets = Object.keys(brackets)
const closingBrackets = Object.values(brackets)

function checkBrackets (string) {
  const bracketsStack = []
  charIterator = string[Symbol.iterator]()
  let char
  while (char = charIterator.next().value) {
    if (openingBrackets.includes(char)) {
      bracketsStack.push(char)
    } else if (closingBrackets.includes(char)) {
      if (brackets[bracketsStack.pop()] !== char) {
        return false
      }
    } 
  }
  return true
} 


console.log(checkBrackets('()()')) // true
console.log(checkBrackets('([])')) // true
console.log(checkBrackets('([)]')) // false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What do you think? Is there a more elegant version to do it?&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>Most useful Font for JavaScript</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Sat, 17 Sep 2022 10:12:24 +0000</pubDate>
      <link>https://forem.com/decker67/most-useful-font-for-javascript-7j1</link>
      <guid>https://forem.com/decker67/most-useful-font-for-javascript-7j1</guid>
      <description>&lt;p&gt;Recently I saw a tutorial and the visualisation of the arrow symbols in the source and ask myself: Where can I get this font?&lt;/p&gt;

&lt;p&gt;The solution is quite simple. Visit &lt;a href="https://github.com/tonsky/FiraCode"&gt;FiraCode&lt;/a&gt; and you are almost there.&lt;/p&gt;

&lt;p&gt;What's the use? Here an excerpt from the README&lt;/p&gt;




&lt;p&gt;Problem&lt;br&gt;
Programmers use a lot of symbols, often encoded with several characters. For the human brain, sequences like -&amp;gt;, &amp;lt;= or := are single logical tokens, even if they take two or three characters on the screen. Your eye spends a non-zero amount of energy to scan, parse and join multiple characters into a single logical one. Ideally, all programming languages should be designed with full-fledged Unicode symbols for operators, but that’s not the case yet.&lt;/p&gt;

&lt;p&gt;Solution&lt;br&gt;
Fira Code is a free monospaced font containing ligatures for common programming multi-character combinations. This is just a font rendering feature: underlying code remains ASCII-compatible. This helps to read and understand code faster. For some frequent sequences like .. or //, ligatures allow us to correct spacing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tonsky/FiraCode"&gt;FiraCode&lt;/a&gt;&lt;/p&gt;




</description>
      <category>javascript</category>
      <category>font</category>
      <category>arrow</category>
    </item>
    <item>
      <title>Reputation for Posts?</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Mon, 12 Sep 2022 14:50:35 +0000</pubDate>
      <link>https://forem.com/decker67/reputation-for-posts-584o</link>
      <guid>https://forem.com/decker67/reputation-for-posts-584o</guid>
      <description>&lt;p&gt;I am wondering very often how many reputation some posts got, even they contain almost nothing new, are not well written and does not do something extraordinary to mention.&lt;/p&gt;

&lt;p&gt;Do we already had bots here, doing their job to get in the tops?&lt;/p&gt;

</description>
      <category>posts</category>
      <category>dev2</category>
    </item>
    <item>
      <title>Think First, Code Second</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Sat, 10 Sep 2022 10:51:54 +0000</pubDate>
      <link>https://forem.com/decker67/think-first-code-second-40cj</link>
      <guid>https://forem.com/decker67/think-first-code-second-40cj</guid>
      <description>&lt;p&gt;From time to time I see code from colleges or other people, that seems to be to complicated or architectures that consists of many parts, more than I would add.&lt;/p&gt;

&lt;p&gt;My questions: Why is that? &lt;/p&gt;

&lt;p&gt;I think they simply follow a known pattern read or seen anywhere.&lt;/p&gt;

&lt;p&gt;They do not think about it first, is something really needed or who needs it.&lt;/p&gt;

&lt;p&gt;Adding a statemanagement library like Pine, adding Axios for the REST API, MinIO for Object Store, Elastic Search and so on. And sometimes it is even more strange, when the framework itself has a solution for this and you do not have to add another one.&lt;/p&gt;

&lt;p&gt;I would suppose: Think first, start lean and simple, use interfaces to hide implementation details and only switch to bigger players when really needed.&lt;/p&gt;

&lt;p&gt;What do you think? How would you start a project?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>codereview</category>
    </item>
    <item>
      <title>Write your own CORS Proxy with NodeJS in no time.</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Fri, 09 Sep 2022 13:44:47 +0000</pubDate>
      <link>https://forem.com/decker67/write-your-own-cors-proxy-with-nodejs-in-no-time-30f9</link>
      <guid>https://forem.com/decker67/write-your-own-cors-proxy-with-nodejs-in-no-time-30f9</guid>
      <description>&lt;p&gt;You know CORS otherwise you would not read this article, I guess. So let's get beyond it and straight to the solution coded in a few lines of JavaScript. Or better before, show the problem.&lt;/p&gt;

&lt;p&gt;My demo page below shows it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;textarea id="output" rows="20" cols="120"&amp;gt;&amp;lt;/textarea&amp;gt;

  &amp;lt;script type="module"&amp;gt;
    const outputNode = document.getElementById('output')
    const TARGET_URL = 'https://datahub.erde-und-umwelt.de/en/api/getServiceConfiguration/climateResilience'
    const URL = TARGET_URL
    // const URL = `http://localhost:8088/${TARGET_URL}`
    fetch(URL)
      .then((response) =&amp;gt; response.json())
      .then((data) =&amp;gt; outputNode.textContent = JSON.stringify(data, null, 2))
      .catch((exception) =&amp;gt; {
        outputNode.textContent = exception
      })
  &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It simply tries to request some JSON data from a REST API and puts the result into a textarea.&lt;/p&gt;

&lt;p&gt;But this does not happen, because of the wrong CORS header - the request is not allowed for every client.&lt;/p&gt;

&lt;p&gt;So it only shows an error.&lt;/p&gt;

&lt;p&gt;To get beyond this, you can write a backend that requests the data for you and put it through with a universal CORS header, so everyone can use it.&lt;/p&gt;

&lt;p&gt;I will write this backend in NodeJS means JavaScript. The idea is, as also visible in the page, putting a proxy in front of the requested URL like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8088/${TARGET_URL}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That means a request to &lt;code&gt;http://example.de&lt;/code&gt; is prefixed with &lt;code&gt;http://localhost:8080&lt;/code&gt; in result gives &lt;code&gt;http://localhost:8080/http://example.de&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The proxy receives the request and extracts the requested URL from the request and requests the data. &lt;/p&gt;

&lt;p&gt;The code is pretty simple using the http-proxy-middleware.&lt;br&gt;
There is not much to do, at all, as you can see below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const express = require('express')
const cors = require('cors')
const { createProxyMiddleware } = require('http-proxy-middleware')

const app = express()
app.use(cors())
app.use(createProxyMiddleware({
  router: (req) =&amp;gt; new URL(req.path.substring(1)),
  pathRewrite: (path, req) =&amp;gt; (new URL(req.path.substring(1))).pathname,
  changeOrigin: true,
  logger: console
}))

app.listen(8088, () =&amp;gt; {
  console.info('proxy server is running on port 8088')
})

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I therefore use the external NodeJS modules &lt;a href="https://expressjs.com"&gt;express&lt;/a&gt;, &lt;a href="https://github.com/chimurai/http-proxy-middleware#readme"&gt;http-proxy-middleware&lt;/a&gt; and &lt;a href="https://github.com/expressjs/cors#readme"&gt;cors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;How is it done?&lt;/p&gt;

&lt;p&gt;This creates the server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const app = express()

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This enables CORS for all routes, methods and clients.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.use(cors())

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The only special tricky line is this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app.use(createProxyMiddleware({
  router: (req) =&amp;gt; new URL(req.path.substring(1)),
  pathRewrite: (path, req) =&amp;gt; (new URL(req.path.substring(1))).pathname,
  changeOrigin: true,
  logger: console
}))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It creates the middleware. The middleware routes to the embedded URL and rewrites the path.&lt;/p&gt;

&lt;p&gt;And that's it. You created a CORS Proxy in NodeJS.&lt;/p&gt;

</description>
      <category>node</category>
      <category>cors</category>
      <category>proxy</category>
      <category>javascript</category>
    </item>
    <item>
      <title>UI5 Web Components &amp;&amp; SolidJS</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Tue, 23 Aug 2022 14:07:31 +0000</pubDate>
      <link>https://forem.com/decker67/ui5-web-components-solidjs-1mpb</link>
      <guid>https://forem.com/decker67/ui5-web-components-solidjs-1mpb</guid>
      <description>&lt;p&gt;If you are looking for a Component Framework useable with &lt;a href="https://www.solidjs.com"&gt;SolidJS&lt;/a&gt; maybe &lt;a href="https://sap.github.io/ui5-webcomponents/"&gt;UI5 Web Components&lt;/a&gt; are the right choice for you.&lt;/p&gt;

&lt;p&gt;They have instructions for Vue, React and Angular and hence SolidJS is not so far away from React, it also fits into the stack.&lt;/p&gt;

&lt;p&gt;Simply start with &lt;a href="https://www.solidjs.com/guides/getting-started"&gt;Getting Started&lt;/a&gt; from SolidJS and add the webcomponents with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @ui5/webcomponents --save
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that you are good to go.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import '@ui5/webcomponents/dist/Button.js'

&amp;lt;ui5-button&amp;gt;Hello world!&amp;lt;/ui5-button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What do you prefer for SolidJS?&lt;/p&gt;

</description>
      <category>ui5</category>
      <category>webcomponents</category>
      <category>solidjs</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Singeltons in JavaScript not needed?</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Sat, 20 Aug 2022 15:33:00 +0000</pubDate>
      <link>https://forem.com/decker67/singeltons-in-javascript-not-needed-21i9</link>
      <guid>https://forem.com/decker67/singeltons-in-javascript-not-needed-21i9</guid>
      <description>&lt;p&gt;Yes you can implement the singelton pattern in JavaScript with a class, but is it useful or do we need it?&lt;/p&gt;

&lt;p&gt;I don't think so, because simply using an object literal is sufficient and always a singelton, if you place it in his own file.&lt;/p&gt;

&lt;p&gt;This little example shows it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log('A imported')

const state = {
  isLoading: false,
  hasError: false
}

export default state
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import state from './A.js'
console.log('B imported')

const api = {
  getData () {
    state.isLoading = true
  }
}

export default api

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;script type="module"&amp;gt;
    import state from './A.js'
    import api from './B.js'
    console.log(state)
    api.getData()
    console.log(state)
  &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The console shows only one A imported and the state is shared.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EKAdHGPL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wooe6463luztwghmozst.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EKAdHGPL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wooe6463luztwghmozst.png" alt="Image description" width="286" height="86"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The reason is, JavaScript imports each file/module only once and modules are singletons per definition. If a module is imported multiple times, only a single instance of it exists and it is evaluated only once after load.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>singelton</category>
      <category>module</category>
    </item>
    <item>
      <title>Timeout with the fetch API</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Sat, 20 Aug 2022 15:05:00 +0000</pubDate>
      <link>https://forem.com/decker67/timeout-with-the-fetch-api-m45</link>
      <guid>https://forem.com/decker67/timeout-with-the-fetch-api-m45</guid>
      <description>&lt;p&gt;Some time ago I shifted from Axios to fetch, to get rid of another dependency. Nowadays the fetch API is available everywhere, in the browser and also in node, so no need to take something else and it also supports streaming that is not available in Axios.&lt;/p&gt;

&lt;p&gt;But when it comes to set a timeout for a request, how could this be done?&lt;/p&gt;

&lt;p&gt;I saw solutions using setTimeout but far better seems the following solution.&lt;/p&gt;

&lt;p&gt;Simply add&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;signal: AbortSignal.timeout(&amp;lt;number&amp;gt;)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to your fetch like in this example and you are done — at least for the timeout.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch(&amp;lt;url&amp;gt;, {
  ...
  signal: AbortSignal.timeout(5000)
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hope this helps to get more comfortable with the fetch API.&lt;/p&gt;

</description>
      <category>fetch</category>
      <category>javascript</category>
      <category>timeout</category>
    </item>
    <item>
      <title>Do we need Axios having the fetch API everywhere?</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Thu, 11 Aug 2022 13:38:00 +0000</pubDate>
      <link>https://forem.com/decker67/do-we-need-axios-having-the-fetch-api-everywhere-24ej</link>
      <guid>https://forem.com/decker67/do-we-need-axios-having-the-fetch-api-everywhere-24ej</guid>
      <description>&lt;p&gt;What do you prefer?&lt;br&gt;
Is there a reason to use Axios these times?&lt;/p&gt;

&lt;p&gt;In my opinion there is almost no reason to do so and I would suggest to get rid of another dependency, making things more lean and easier to understand.&lt;/p&gt;

&lt;p&gt;At least thank you for your work Axios team. It helped a lot in the old times before fetch.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>axios</category>
      <category>fetch</category>
    </item>
    <item>
      <title>Do we really need Flux, Vuex, Pinia, MobX and all the other Statemanagement Frameworks?</title>
      <dc:creator>decker</dc:creator>
      <pubDate>Wed, 10 Aug 2022 16:43:00 +0000</pubDate>
      <link>https://forem.com/decker67/do-we-really-need-flux-vuex-pinia-mobx-and-all-the-other-statemanagement-frameworks-4p37</link>
      <guid>https://forem.com/decker67/do-we-really-need-flux-vuex-pinia-mobx-and-all-the-other-statemanagement-frameworks-4p37</guid>
      <description>&lt;p&gt;Or is it sufficient to us the build in reactivity system of  Vue or the other frontend frameworks like in SolidJS.&lt;/p&gt;

&lt;p&gt;I think it is the same question like using Axios or fetch?&lt;br&gt;
You don't have to axios any more in times of the fetch API and it makes your source easier to understand.&lt;/p&gt;

&lt;p&gt;The JavaScript World gets overwhelmed with frameworks and libraries, that soon gets replaced by the next one.&lt;/p&gt;

&lt;p&gt;The argument to use them get killed with the next one coming up from nowhere. So why using them at all and how often do you really need them to share a state between to components.&lt;/p&gt;

&lt;p&gt;Less is more.&lt;/p&gt;

&lt;p&gt;What do you think?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>vue</category>
      <category>state</category>
    </item>
  </channel>
</rss>
