<?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: Jonathan Chen</title>
    <description>The latest articles on DEV Community by Jonathan Chen (@jonhpc).</description>
    <link>https://dev.to/jonhpc</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%2F930873%2F8ef5cdff-e565-44b5-85d2-13d6624d93a1.jpeg</url>
      <title>DEV Community: Jonathan Chen</title>
      <link>https://dev.to/jonhpc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jonhpc"/>
    <language>en</language>
    <item>
      <title>Introducing Colada</title>
      <dc:creator>Jonathan Chen</dc:creator>
      <pubDate>Thu, 22 Sep 2022 19:16:37 +0000</pubDate>
      <link>https://dev.to/jonhpc/introducing-colada-2ce5</link>
      <guid>https://dev.to/jonhpc/introducing-colada-2ce5</guid>
      <description>&lt;h2&gt;
  
  
  Time-travel debugging for &lt;a href="https://pinia.vuejs.org/" rel="noopener noreferrer"&gt;Pinia&lt;/a&gt;🍍, Vue’s official state management library
&lt;/h2&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklkovxdmekb33bthetsw.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fklkovxdmekb33bthetsw.png" alt="Colada Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Pinia&lt;/strong&gt; 🍍
&lt;/h3&gt;

&lt;p&gt;Pinia is the new official state management library for Vue, compatible with Vue2 and Vue3, replacing VueX . As compared with the previous VueX versions it is replacing, it offers a simpler, less verbose API, and introduces native support for Typescript. Vue developers who have existing projects using VueX will want to make the switch to Pinia, because VueX will no longer be officially supported, and developers starting new Vue projects will likely want to use Pinia for the same reason. Pinia comes with support from Vue devtools, however because Pinia and Vue 3 were released just earlier this year, the devtools are currently lacking some functionality for Pinia, specifically time travel debugging.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Colada&lt;/strong&gt; 🥥
&lt;/h3&gt;

&lt;p&gt;Enter Colada, the perfect companion for Pinia! Noticing this lack of time travel capability, we decided to implement it in a chrome extension, as well as a plugin for the existing Vue devtools. You can install the Colada plugin in your Vue-Pinia application, and click on nodes representing store changes to dynamically change the state of the app back to previous snapshots, improving the debugging process for Vue-Pinia apps with complex state changes. Additionally if you install the Colada chrome extension along with the plugin, you can access a separate Chrome devtools panel offering the same time travel functionality with an enhanced U.I.&lt;/p&gt;

&lt;p&gt;To learn more and get started, see our &lt;a href="https://colada.dev" rel="noopener noreferrer"&gt;documentation here.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Core Features&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;🔄 Direct integration into &lt;a href="https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=en" rel="noopener noreferrer"&gt;Vue.js DevTools&lt;/a&gt;, so developers can use Colada without needing to leave their existing devtool configuration&lt;br&gt;
🕰️ Time travel debugging&lt;br&gt;
🔎 Inspector panel for viewing your Vue app’s Pinia state&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Chrome DevTool extension providing the same features with an enhanced U.I.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfq3h6faxo7vnq3s389y.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgfq3h6faxo7vnq3s389y.png" alt="Vue.js DevTools plugin"&gt;&lt;/a&gt;&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi98v85o7dfvq025ucmkc.gif" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi98v85o7dfvq025ucmkc.gif" alt="Colada Chrome DevTool Extension"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Getting Started&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Installation: VueDevTools Plugin&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ensure the &lt;a href="https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=en" rel="noopener noreferrer"&gt;Vue.js DevTools extension&lt;/a&gt; is installed&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install the &lt;a href="https://www.npmjs.com/package/colada-plugin" rel="noopener noreferrer"&gt;Colada npm package&lt;/a&gt; in your app’s root directory&lt;br&gt;
&lt;code&gt;npm install colada-plugin --save-dev&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add Colada to your Vue app&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// main.js

import { createApp } from 'vue';
import { createPinia } from 'pinia';
// import Colada Plugin
import Colada, { PiniaColadaPlugin } from 'colada-plugin';
import App from './App.vue';

const app = createApp(App);
const pinia = createPinia();

app.use(pinia);
pinia.use(PiniaColadaPlugin);
app.use(Colada);

app.mount('#app');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Installation: Chrome Extension&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Make sure you have the Vue.js DevTools installed.&lt;/p&gt;

&lt;p&gt;There are two ways to install the Colada Chrome extension:&lt;br&gt;
&lt;strong&gt;Install from the Chrome Web Store&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Follow the directions above for adding colada-plugin to your Vue app.&lt;br&gt;
Navigate to &lt;a href="https://chrome.google.com/webstore/detail/colada-devtools/icdbaobbeemmhlmjolbkedcneadkfpdl?hl=en&amp;amp;authuser=0" rel="noopener noreferrer"&gt;Colada on the Chrome Web Store&lt;/a&gt; and click “Add to Chrome”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install from source&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Follow the directions above for adding &lt;code&gt;colada-plugin&lt;/code&gt; to your Vue app.&lt;/li&gt;
&lt;li&gt;Clone the &lt;a href="https://github.com/oslabs-beta/colada" rel="noopener noreferrer"&gt;colada repository&lt;/a&gt; to your machine.&lt;/li&gt;
&lt;li&gt;Run the following commands
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd colada-extension
npm install
npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;This will create a new &lt;code&gt;/dist&lt;/code&gt; directory in &lt;code&gt;/colada-extension&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;In Chrome, navigate to chrome://extensions&lt;/li&gt;
&lt;li&gt;In the top right of the Extensions page, there is a toggle for “Developer Mode.” Make sure this is toggled ON.&lt;/li&gt;
&lt;li&gt;On the top left of the page, select “Load Unpacked”, and select the &lt;code&gt;colada/colada-extension/dist&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Features to come&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Interactive component tree graph to visualize data flow between Vue components and further aid with debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Colada Links&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/oslabs-beta/colada" rel="noopener noreferrer"&gt;Github &lt;/a&gt;| &lt;a href="https://colada.dev/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Colada Team&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Parker Steinberg | &lt;a href="https://github.com/parkersteinberg" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/parker-steinberg/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Jonathan Chen | &lt;a href="https://github.com/JonHPC" rel="noopener noreferrer"&gt;Github&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/jonathan-hp-chen/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Vaughn Sulit | &lt;a href="https://github.com/bvaughnsulit" rel="noopener noreferrer"&gt;Github&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/bvaughnsulit/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dan Steinbrook | &lt;a href="https://github.com/dsteinbrook" rel="noopener noreferrer"&gt;Github&lt;/a&gt; | &lt;a href="https://www.linkedin.com/in/daniel-steinbrook/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>vue</category>
      <category>pinia</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
