Vue.js - 1.2

Extension ID


What’s new?

Please see Vue.js - 1.2 - Release Notes for more information.


This extension provides support for Vue.js. Vue.js is an open-source JavaScript framework used to build user interface for web application:

In what situation should you install this extension?

If your Web application contains Vue.js source code used inside JavaScript files and you want to view these object types and their links with other objects, then you should install this extension.

This extension does note analyse any Vue.js source code within TypeScript files.

Supported Vue.js versions

Version Support
v2.x (tick)

Supported template definitions

Vue.js has different methods to define a component’s template - these methods are shown here: . The following table shows the methods that are currently supported by Vue.js extension:

Pattern Support
String (error)
Template literal (error)
X-Templates (tick)
Inline (tick)
Render functions (tick)
JSX (error)
Single page components (tick)

Unsupported template definition methods will not create links to any called functions.

AIP Core compatibility

This extension is compatible with:

AIP Core release Supported
8.3.x (tick)

Dependencies with other extensions

Some CAST extensions require the presence of other CAST extensions in order to function correctly.
The Vue.js extension requires that the following other CAST extensions are also installed:

What results can you expect?

Once the analysis has completed, you can view the results in the normal manner:


The following specific objects are displayed:

Icon Description

Vue.js Get Request Service

Vue.js Post Request Service

Vue.js Put Request Service

Vue.js Delete Request Service

Specific support


The “Vuex.Store()” calls are searched for throughout the application, and the first parameter is used to resolve different links.

const store = new Vuex.Store({
  state: {
    pageTitle: 'Home',
    menu: menu,
    user: {},
    token: null,
    message: {
      type: null,
      body: null
    config: config

  mutations: {

    setAuth (state, { user, token }) {
      state.user = user
      state.token = token'user', user)'token', token)
    setMenu (state, data) { = data
    setPageTitle (state, data) {
      state.pageTitle = data
    showMessage (state, type, body) {
      state.message = { type, body }
  actions: {

    checkAuth ({ commit }) {
      let data = {
      commit('setAuth', data)
    checkPageTitle ({commit, state}, path) {
      for (let k in {
        if ([k].href === path) {

export default store

the “sync()” calls are also used:

import store from './store'
import router from './router'
sync(store, router)

This extension supports “Vuex store dispatch” methods which are used to call shared functions. Here is an example of a classic architecture using this method:

In actions.type.js

export const FETCH_DATA = "fetchData";

In data.module.js

import { FETCH_DATA } from "./actions.type";
import Vue from "vue";
import axios from "axios";
import VueAxios from "vue-axios";

Vue.use(VueAxios, axios);

const actions = {
  [FETCH_DATA]() {
    return return Vue.axios.get('uri/to/data')

export default {

In index.js

import Vue from "vue";
import Vuex from "vuex";

import data from "./data.module";


export default new Vuex.Store({
  modules: {

In StoreExample.vue


import { FETCH_DATA } from "@/store/actions.type";

export default {
  name: "StoreExample",
  mounted: function() {

This code gives the following results:



The Vue.js extension supports webservices using Axios:

async onLogout() {
      await this.$axios.$post('/api/oauth/logout');

      try {
        await this.$axios.$get('/api/oauth/me')
      } catch (e) {
        // middleware redirects to login page

Giving the following result:


The Vue.js extension supports webservices using vue-resources.

async onLogout() {
      await this.$'/api/oauth/logout');

      try {
        await this.$http.$get('/api/oauth/me')
      } catch (e) {
        // middleware redirects to login page

Giving the following result:


The Vue.js extension supports webservices using fetch:

async onLogout() {
      await fetch('/api/oauth/logout');

      try {
        await fetch('/api/oauth/me')
      } catch (e) {
        // middleware redirects to login page

Giving the following result:

Quality rules

The following structural rules are provided:

Release Link

Known limitations

Functions passed as properties

In Vue.js, components can have properties, which could be functions. Links to those functions are currently unsupported.