<?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>DEV Community: Diego López</title>
    <description>The latest articles on DEV Community by Diego López (@frostqui).</description>
    <link>https://dev.to/frostqui</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%2F4577%2F10099165.jpeg</url>
      <title>DEV Community: Diego López</title>
      <link>https://dev.to/frostqui</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/frostqui"/>
    <language>en</language>
    <item>
      <title>How to use axios with Vue. Tips and tricks.</title>
      <dc:creator>Diego López</dc:creator>
      <pubDate>Mon, 26 Oct 2020 17:08:21 +0000</pubDate>
      <link>https://dev.to/frostqui/how-to-use-axios-with-vue-tips-and-tricks-21e0</link>
      <guid>https://dev.to/frostqui/how-to-use-axios-with-vue-tips-and-tricks-21e0</guid>
      <description>&lt;p&gt;Post originally written by me in Spanish 🇪🇸 on my blog:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codingpotions.com/vue-axios" rel="noopener noreferrer"&gt;Guía de uso de Vue y axios&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VueJS as opposite of Angular, not comes with a predefined way of making HTTP calls. The user can use whatever library of his choice, or not use a library at all. For example, you can make API calls in Vue using the &lt;strong&gt;fetch&lt;/strong&gt; method from Javascript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Axios&lt;/strong&gt; is one of the most popular libraries to make API calls and offers abstractions to reduce the code required to make API calls. For example, with axios you don't need to parse the JSON response, and you don't have to pass the base URL of the requests every time.&lt;/p&gt;

&lt;p&gt;So, in this article, to learn Axios, we will make an example project using Axios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;First, you need a Vue project. If you created the project using the &lt;strong&gt;vue-cli&lt;/strong&gt;, the CLI ask you about axios so maybe you alredy have axios installes in your project. To know if you have axios installed, check the &lt;strong&gt;package.json&lt;/strong&gt; and search for the axios package.&lt;/p&gt;

&lt;p&gt;If you don't have axios installed you can install it using npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;axios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or if you are using &lt;strong&gt;Yarn&lt;/strong&gt; you can use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yarn add axios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you need to have an API with some endpoints. If you don't have one, don't worry cause we are going to use an example API to use in this article. &lt;/p&gt;

&lt;p&gt;In this article we're going to use the JSONPlaceholder, feel free to use if you want.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://jsonplaceholder.typicode.com/" rel="noopener noreferrer"&gt;https://jsonplaceholder.typicode.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, you need to know about the basic concepts of Vue. For this article we are going to use the &lt;strong&gt;created&lt;/strong&gt; method from the lifecycle of Vue to make the requests when the component is created. If you want to learn more about Vue lifecycle, check this article written by &lt;a class="mentioned-user" href="https://dev.to/samolabams"&gt;@samolabams&lt;/a&gt;: &lt;a href="https://dev.to/samolabams/understanding-vuejs-lifecycle-hooks-5ejk"&gt;https://dev.to/samolabams/understanding-vuejs-lifecycle-hooks-5ejk&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GET calls
&lt;/h2&gt;

&lt;p&gt;The purpose of a GET is to retrieve information. When you open a page, in the background, the browser sends a GET call to retrieve the page that you are visiting, and the same for all the resources of the page (.css files, images, .js files, etc).&lt;/p&gt;

&lt;p&gt;A GET response to an API call usually returns a JSON with the information.&lt;/p&gt;

&lt;p&gt;First we are going to create a component that calls the API when is created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;template&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;template&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
import axios from "axios";
export default &lt;span class="si"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;created&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/todos/1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="si"&gt;}&lt;/span&gt;;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt; &lt;span class="na"&gt;scoped&lt;/span&gt; &lt;span class="na"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"scss"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, we are only importing &lt;strong&gt;axios&lt;/strong&gt; in the component and calling &lt;code&gt;axios.get()&lt;/code&gt; with the url of the JSONPlaceholder API, as simple as this.&lt;/p&gt;

&lt;p&gt;Axios returns a promise with the JSON response inside data property parsed for you.&lt;/p&gt;

&lt;p&gt;If you create this component you will see in the console of the browser something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F4oILhC4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F4oILhC4.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to use the response in the view or in another &lt;strong&gt;method&lt;/strong&gt; or &lt;strong&gt;computed&lt;/strong&gt; property you only have to create a new variable inside &lt;strong&gt;data&lt;/strong&gt; of Vue:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;template&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;todos&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;template&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
import axios from "axios";
export default &lt;span class="si"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
  &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="nf"&gt;created&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/todos/1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;todos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="si"&gt;}&lt;/span&gt;;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt; &lt;span class="na"&gt;scoped&lt;/span&gt; &lt;span class="na"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"scss"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  POST calls
&lt;/h2&gt;

&lt;p&gt;POST endpoints usually are designed to create things. So for example if you want to create a new user in the database almost sure that you will use a POST endpoint to send the info of the new user to create.&lt;/p&gt;

&lt;p&gt;POST calls with axios is as simple as GET calls. You only have to call the &lt;code&gt;.post()&lt;/code&gt; method with the URL of the endpoint and a second parameter with the object that you need to pass to the API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;template&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;template&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
import axios from "axios";
export default &lt;span class="si"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;created&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;post&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;foo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/posts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="si"&gt;}&lt;/span&gt;;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt; &lt;span class="na"&gt;scoped&lt;/span&gt; &lt;span class="na"&gt;lang&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"scss"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  PUT calls
&lt;/h2&gt;

&lt;p&gt;PUT calls are created to edit things or resources in the server. So for example, if you want to edit a user in the database, the logical way to do it is using a PUT call.&lt;/p&gt;

&lt;p&gt;PUT calls have the same syntax as in POST, except for the name of the method to call (you only have to call &lt;code&gt;axios.put()&lt;/code&gt; with the URL and the object to edit as second parameter).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;created&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;post&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;foo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;put&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/posts/1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;/&lt;/span&gt;&lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DELETE
&lt;/h3&gt;

&lt;p&gt;Delete is to remove resources. With axios you only have to pass the URL of the resource to delete.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;created&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/todos/1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;NOTE: There is also the PATCH methods but I don't use it a lot.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The architecture that I recommend
&lt;/h2&gt;

&lt;p&gt;This is my personal opinion. It may not be the best option for all cases. You have to think if this solution makes sense in your project.&lt;/p&gt;

&lt;p&gt;In my case what I do is create a folder inside src called logic in which I create a .js file for each entity. For me entity is something that has a reason to be by itself, for example: users, cars, animals, etc. &lt;/p&gt;

&lt;p&gt;Within these files what I do is create a function for each API call, simply returning the request. Let's see an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// src/logic.todos.js&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;axios&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;API&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://jsonplaceholder.typicode.com/todos&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;API&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;axios&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;API&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;todo&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So if you have to use this calls you only have to import this file inside de component to use it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;todos&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@/logic/todos&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the use the functions where you want:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;created&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that here I replace the old syntax using &lt;code&gt;then()&lt;/code&gt; for the &lt;strong&gt;async / await&lt;/strong&gt; pattern because is simpler to read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;With the API that we use in this article (JSONPlaceholder) you can create a full website to manage todos so you can practice with all the API calls. &lt;/p&gt;

&lt;p&gt;Another thing I recommend is to put the base URL of the API inside the Vue environment variables so you can have the variable stored in one place. &lt;/p&gt;

&lt;p&gt;Thanks for reading my post! You can say hello or send me a message in my Twitter &lt;a href="https://twitter.com/codingpotions" rel="noopener noreferrer"&gt;@CodingPotions&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>vue</category>
      <category>axios</category>
    </item>
    <item>
      <title>10 tips for the Angular developer</title>
      <dc:creator>Diego López</dc:creator>
      <pubDate>Mon, 25 Mar 2019 19:07:15 +0000</pubDate>
      <link>https://dev.to/frostqui/10-tips-for-the-angular-developer-39j4</link>
      <guid>https://dev.to/frostqui/10-tips-for-the-angular-developer-39j4</guid>
      <description>&lt;p&gt;Today I'm going to tell you 10 tips for any Angular developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.
&lt;/h3&gt;

&lt;p&gt;Try to have more or less clear the structure that the project is going to have, or at least decide where it is going to go. It is also important that you decide if you are going to use a NGRX state manager. It is important not to have to refactor the whole project later.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.
&lt;/h3&gt;

&lt;p&gt;Try to modularize and create reusable components. In any programming language it is very important to reuse the code as much as possible to speed up and not have to change the code every time you need a change. Think about the components so that they are isolated and generic to favor reusability.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.
&lt;/h3&gt;

&lt;p&gt;Think about using what Angular offers and before doing anything see if there is already a solution within the Angular ecosystem. For example if wou want to make HTTP request, use the solution that comes in Angular (HTTPClient)&lt;/p&gt;

&lt;h3&gt;
  
  
  4.
&lt;/h3&gt;

&lt;p&gt;Do not download libraries if they are not completely necessary. For example long ago in a project I needed a table component. I was looking at the option of adding a library of table components, but decided to implement my own. &lt;/p&gt;

&lt;p&gt;With this you get to know your project perfectly and have total control of     what you are doing. If you need a change in a library you have to propose it   to its creator and they don't always pay attention to you.&lt;/p&gt;

&lt;h3&gt;
  
  
  5.
&lt;/h3&gt;

&lt;p&gt;Try to use the principles of Optimistic UI. Optimistic UI is a way of displaying information without waiting for a response from the server. For example, imagine that you are developing a real-time chat app. If every time you send a message you have to wait for a response from the server, the user interface will not be immediate. &lt;/p&gt;

&lt;p&gt;One way to resolve this for this example would be to directly paint the message on the screen as if it had been sent correctly. If the response coming from the server is wrong then you show the error. This makes it appear to the user that the application works very fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  6.
&lt;/h3&gt;

&lt;p&gt;If the application is large, try to take advantage of the potential of typescript in terms of creating interfaces and models for the data, that will avoid problems in the long run. In addition you have at your disposal the types for the variables, which is going to facilitate its debugging a lot.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.
&lt;/h3&gt;

&lt;p&gt;If you can use some css code precompiler like scss, that will speed up the creation of styles a lot.&lt;/p&gt;

&lt;h3&gt;
  
  
  8.
&lt;/h3&gt;

&lt;p&gt;Create your own component library. This is something I started using recently. You create a library with the components you want and upload them to a repository. When you have to start a new Angular project, you can always download that library to have components already created.&lt;/p&gt;

&lt;h3&gt;
  
  
  9.
&lt;/h3&gt;

&lt;p&gt;If you create animations, there are ways to reuse them throughout your application, and you will get the code in one place.&lt;/p&gt;

&lt;h3&gt;
  
  
  10.
&lt;/h3&gt;

&lt;p&gt;Use the pipes whenever you can, especially in the lists, this will get much increase the speed of revaluation (pure&lt;/p&gt;

</description>
      <category>angular</category>
    </item>
    <item>
      <title>My favorite Angular libraries to use in any project</title>
      <dc:creator>Diego López</dc:creator>
      <pubDate>Fri, 08 Mar 2019 11:49:22 +0000</pubDate>
      <link>https://dev.to/frostqui/my-favorite-angular-libraries-to-use-in-any-project-47ai</link>
      <guid>https://dev.to/frostqui/my-favorite-angular-libraries-to-use-in-any-project-47ai</guid>
      <description>&lt;p&gt;Post originally written by me in spanish here: &lt;a href="https://codingpotions.com/angular-mejores-librerias/"&gt;Mejores librerías Angular&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As in many frameworks, around Angular there is also an ecosystem of libraries created by the community, the most common is component libraries. In the following list I will show you the ones I personally found most interesting. The list does not follow any particular order.&lt;/p&gt;

&lt;p&gt;I recommend using the minimum number of libraries that are really needed, since you lose control of the components of your application, and you depend on the developer of the library to maintain those components.&lt;/p&gt;

&lt;h2&gt;
  
  
  PrimeNG
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejj9wwylq9aljrj35ef3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejj9wwylq9aljrj35ef3.png" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Collection of many components also prepared for mobile. It has certain themes that you can choose to customize the appearance of  the components.&lt;/p&gt;

&lt;p&gt;It has data display components (tables, graphs, statistics, etc), to many types of panels, buttons, menus, even has a drag and drop component, so you won't have to look for another library for this functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.primefaces.org/primeng/#/"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NG Bootstrap
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ptbvdlyiah973l0ktim.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ptbvdlyiah973l0ktim.png" width="626" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to use Bootstrap together with Angular, you can use Bootstrap directly as you would on any normal page. The problem with this is that the parts of Bootstrap that use JS will not work for you, because they use Jquery, and it is not adapted for Angular. If you need to use the JS components of Bootstrap the best thing you can do is to use this library.&lt;/p&gt;

&lt;p&gt;The library contains many of the Bootstrap components adapted to Angular, so for example, you can use the Bootstrap dropdown without having to do weird things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ng-bootstrap.github.io/#/home"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular material
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyguxc3dgazx98xkulmeu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyguxc3dgazx98xkulmeu.png" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lately the design Material based on Google is very fashionable and this library puts it to our reach to use with Angular.&lt;/p&gt;

&lt;p&gt;As with the previous libraries it is a wide set of ready-to-use components. These components have the particularity that their design is inspired by the Material design.&lt;/p&gt;

&lt;p&gt;Like PrimeNG it offers a variety of components, although it does not offer many components for data visualization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://material.angular.io/"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NGX Admin
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fio83ye2d3ltsdxct3uzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fio83ye2d3ltsdxct3uzy.png" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we want to include a control panel in our web application, the easiest and fastest way is to use these components for their creation.&lt;/p&gt;

&lt;p&gt;It comes with two color themes, one light and one dark. In its official website you can see an example of a control panel already in operation using these components, as you can see although it is focused on a control panel, it comes with a variety of components.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://akveo.com/ngx-admin/"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ngrx
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbnjlwypqvy5kexcjiux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdbnjlwypqvy5kexcjiux.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This library is essential for large applications, and is used to manage the status of the web application in a single point called store.&lt;/p&gt;

&lt;p&gt;This system also allows to share data between components and helps to make large applications maintainable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ngrx/platform"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NG animate
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdn18kack1ilvo673hz2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdn18kack1ilvo673hz2n.png" width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Small animations to use in the components of Angular. Although Angular comes with a system to create our own animations, there is a library that creates these animations for us.&lt;/p&gt;

&lt;p&gt;Although not many animations come, those that come by default are fine for animating components when they are loaded for example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jiayihu.github.io/ng-animate/"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NGX Charts
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dc6nh32bibl02e76ale.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dc6nh32bibl02e76ale.png" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A library of specific components of all types of graphs.&lt;/p&gt;

&lt;p&gt;The graphs are fully customizable and have a multitude of parameters to adapt to all types of pages.&lt;/p&gt;

&lt;p&gt;The types of graphs that are included are the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Horizontal &amp;amp; Vertical Bar Charts (Standard, Grouped, Stacked, Normalized)&lt;/li&gt;
&lt;li&gt;Line&lt;/li&gt;
&lt;li&gt;Area (Standard, Stacked, Normalized)&lt;/li&gt;
&lt;li&gt;Foot (Explodable, Grid, Custom legends)&lt;/li&gt;
&lt;li&gt;Donut&lt;/li&gt;
&lt;li&gt;Gauge&lt;/li&gt;
&lt;li&gt;Linear Gauge&lt;/li&gt;
&lt;li&gt;Force Directed Graph&lt;/li&gt;
&lt;li&gt;Heatmap&lt;/li&gt;
&lt;li&gt;Treemap&lt;/li&gt;
&lt;li&gt;Number Cards&lt;/li&gt;
&lt;li&gt;Bubble/Scatter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://swimlane.github.io/ngx-charts/"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular notifier
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkl9n07dkqub43tn04sg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frkl9n07dkqub43tn04sg.png" width="706" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notifications for Angular. Although you can create your own component to display notifications, that library comes with a few already configured:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default&lt;/li&gt;
&lt;li&gt;Success&lt;/li&gt;
&lt;li&gt;Information&lt;/li&gt;
&lt;li&gt;Notice&lt;/li&gt;
&lt;li&gt;Error&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition the notifications come with animations, can be hidden and are customizable with various parameters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dominique-mueller/angular-notifier"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dragula
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6z0572xf12osp2w379x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd6z0572xf12osp2w379x.png" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dragula is a library thought for several frameworks, among them, Angular. It is a library to implement Drag and Drop components and designs, that is to say, interfaces in which the user can move and drag the elements of the page with the mouse or with the finger in smartphones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/valor-software/ng2-dragula"&gt;Official Page&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;There are many more libraries, but I have put those that I personally have found more useful or at least curious. The good thing about Angular is that you don't need to install many libraries to create a project, since Angular, unlike other frameworks, comes by default with everything you need.&lt;/p&gt;

</description>
      <category>angular</category>
    </item>
  </channel>
</rss>
