pinia(菠萝)

1. 什么是pinia

  • vuex精简版 ,而且vue官方更加推荐使用。
  • 优势又完胜于vuex ,下面我们来了解下pinia。

2.优势

  • pinia是整合了vuex5提案的所有功能点,所以说pinia就是Vuex5也不为过
  • Vuex3中使用Vuex4,并且还只能作为一个过度的选择存在很大的隐患,所以在 Componsition API 诞生之后,也就设计了全新的状态管理 Pinia

Pinia 和 Vuex
Vuex
: StateGettesMutations(同步)、Actions(异步)
Pinia: StateGettesActions(同步异步都支持)


3. 使用

  1. 安装
    npm install pinia
  2. 在main.js中加入
    import App from './App.vue';
    import router from './router';
    import { createApp } from 'vue';
    import Antd from 'ant-design-vue';
    import 'ant-design-vue/dist/antd.css';
    import { createPinia } from 'pinia';//导入pinia
    const pinia = createPinia();//调用创建pinia
    createApp(App).use(Antd).use(pinia).use(router).mount('#app')
  3. 去创建pinia仓库(创建/src/store/pinia.js)
    import { defineStore } from 'pinia';
    export const PiniaStore = defineStore('main', {  //导出 pinia仓库
      state: () => { //相当于全局的 data()
        return {
          name: '逸尘',
          age: 21
        }
      },
      getters: {},  //相当于全局的computed
      actions: {}   //相当于全局methods
    })
  4. 使用
    <style lang="less" src="./index.less" ></style>
    <template>
      <div class="li-head">
        <a-button type="primary" style="margin-bottom: 16px" @click="setFold">
          <MenuUnfoldOutlined v-if="fold" />
          <MenuFoldOutlined v-else />
        </a-button>
        <div>{{ pinia.name }}</div>
        <div>{{ pinia.age }}</div>
      </div>
    </template>
    <script>
    import { ref, watch, reactive } from 'vue';
    import { PiniaStore } from '../../store/pinia';
    const pinia = PiniaStore();
    import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons-vue';
    export default {
      name: "head",
      components: { MenuFoldOutlined, MenuUnfoldOutlined },
      props: {
        fold: Boolean,
        setFold: Function
      },
      setup(props) {
        return { pinia }
      }
    }
    </script>
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值