Skip to content
pinegrow.com
Docs menuVue Designer

App Tree and State panel

With your Vue app, you think of components and its state.

On this page

Vue Designer is built on top of Pinegrow Web Editor and shares a similar set of features (panels & visual helpers) and workflow when working on your Vue components.

The App Tree and the State Panel are the two key features that are unique to Vue Designer.

To follow along with this guide, clone the sample apps from the start-screen by clicking on the “New Project” button. If you are new to Vue Desginer, follow the Quick Start guide, which provides step-by-step instructions on cloning an existing starter template (or) sample app.

Sample App used in this guide - Happy Paws with Nuxt and Tailwind CSS.

You can watch and follow this live demo, or scroll down past the video for step-by-step instructions.

Open App Tree

Once the startup page is open, click on the root node of the component currently loaded in the Page Tree.

Pinegrow HeroSection.vue preview at 768 px with a callout reading Click on Root Node in Page Tree, next to the page tree.

This opens the App Tree that displays all the mounted components of the current page.

Pinegrow App Tree listing the mounted components NavBar, HeroSection and CallToActionCard.

Hover on App Tree

Hovering on the component instances in the App Tree highlights the corresponding components in the live page view.

You might have to scroll down the page view to see components lower on the page when hovering over them in the App Tree.

Pinegrow App Tree with the NavBarDesktopMenu component highlighted while hovering, and the matching element outlined in the Happy Paws preview.

Click on any component instance in the App Tree to load the same in the Page Tree. Once the component is loaded in the Page Tree, you can design the loaded component visually using the various visual helpers.

Pinegrow App Tree with the PetListLite component entry highlighted, and a callout reading Click on a component instance to load.

State of the Component

The State Panel displays the state of the currently loaded component. The displayed state includes both the key and the live data it holds, and covers various types of state variables such as:

  • Props
  • Normal and reactive variables (ref, reactive, computed, etc)
  • Provided state (via plugins, for eg, route object)
Pinegrow State Panel for a Happy Paws pet list, showing the pets array with its items and Pet cards for Jack and Maggie in the preview.
  • Use the floating buttons when hovering over the state to copy it’s key or value when required.
  • Click on the collapsible groups to view the data within data-types such as arrays and objects.

The State Panel is highly inspired by Vue Devtools, Nuxt Devtools and Vite Devtools projects.

The State Panel dynamically displays the state of the currently loaded component. Feel free to navigate to any component in the App Tree.

Pinegrow App Tree with a PetCard instance selected, and a callout reading Navigate to any component in the App Tree.

The State Panel displays the specific state of the selected component instance (with a key) of the component currently loaded in the Page Tree.

Pinegrow State Panel for the selected PetCard instance showing props such as breed Domestic Long Hair, name Maggie and sex Female.
Vue Designer state panel for the PetCard component with the selected Rocky instance outlined in the preview and its props listed.

Easy State Binding in Props Panel

Click on the dropdown next to props of a child component to pass the state via props.

Vue Designer Props panel with the property dropdown open for a NuxtLink, listing id, name, breed and sex.

Expressions can be easily applied to the bound state variables.

Vue Designer preview of Duke and Bella pet cards, with the NuxtLink to property set to the bound expression /adopt/${id}.

Make sure to enable click-mode for the current page view, by clicking on the button in the top toolbar.

Vue Designer preview of the Happy Paws hero section with Click-Mode enabled, letting test clicks reach the page.

Navigate to another route in your app by interacting with your app’s navigation.

Vue Designer Happy Paws hero preview at 768 px with the Adopt Now link hovered, and a callout reading Navigate to another route in your app.

As the App Tree is dynamic in nature and displays the mounted components of the current page/route, navigate to any component in the new route.

Vue Designer App Tree with the adopt/index route and the PetList component highlighted.

State Binding with v-for directive

When looping through an array of data, the v-for object and index can be directly bound with v-bind when the child component has the same prop interface.

Vue Designer PetList.vue preview with the PetCard v-for and v-bind settings in the Properties panel.

Easily bind v-for object and index properties individually to child component props.

Vue Designer PetCard v-bind menu listing pet.breed, pet.dateOfBirth, pet.id and other pet properties, with a callout for binding with v-bind.