Документация API

createNervue

Возвращает vue плагин Nervue.

import { createNervue } from 'nervue'
import { createApp } from 'vue'
import App from './App.vue'

const nervue = createNervue()
const app = createApp()

app.use(nervue)

Для того чтобы получить доступ к nervue объекту, достаточно будет использовать inject, передав ему в качестве аргумента nervueSymbol.


<script lang="ts">
  import { defineComponent, inject } from 'vue'
  import { nervueSymbol } from 'nervue'

  export default defineComponent({
    setup(){
      const globalStore = inject(nervueSymbol)

      globalStore.stores.USER.getUser()
    }
  })
</script>

Nervue устанавливается как глобальная переменная и поэтому мы можем обращаться из шаблона компонента к нему на прямую:

<template>
  <div class="user">
    <h1 class="user__name">
      {{ $nervue.stores.USER.name }}
    </h1>
  </div>
</template>

createComponent

В процессе...

useNervue

Функция, которая возвращает корневой объект Nervue.

<script lang="ts">
  import { defineComponent } from 'vue'
  import { useNervue } from 'nervue'
  
  export default defineComponent({
    setup() {
      // корневой объект Nervue
      const nervue = useNervue()
      
      return {
        nervue
      }
    }
  })
</script>

useStore

В процессе...

defineStore

В процессе...

mapState

Позволяет получить доступ к свойствам state и computed хранилища, путем распространения в computed свойстве компонента, с использованием options api. В качестве первого аргумента принимает useStore функцию, возвращающую хранилище, вторым аргументом необходимо передать либо объект, либо массив ключей.

В качестве примера возьмем все то же хранилище, которое мы определили ранее в качестве базового примера:

import { defineStore } from 'nervue'

const useCounterStore = defineStore({
  id: 'counter',
  // определяем состояние
  state: () => ({
    count: 0
  }),
  // определяем действия
  actions: {
    increment(){
      this.count += 1
    }
  }
})

Теперь мы можем в Vue компоненте извлечь ключи состояния, с помощью mapState:


<script lang="ts">
  import { mapState } from 'nervue'
  import { useCounterStore } from './store/counter-store'

  export default {
    data(){
      return {}
    },
    computed: {
      ...mapState(useCounterStore, {
        counterValue: 'count',
        doubleCount: store => store.count * 2
      })
    },

    methods: {
      decrement(){
        this.counterValue -= 1
      }
    }
  }

</script>

Примечание

Нет необходимости использовать mapState при использовании composition api.

mapActions

В процессе...

$patch

В процессе...

$subscribe

В процессе...

Последнее обновление: