后端学习Vue系列之——Vuex

基于Vue+Vuex+iView的电子商城网站 MALL-VUE 这是一个基于VUE + VUEX + iView做的一个电商网站前端项目, 附带前后端分离实现版本(在forMallServer分支),欢迎fork或star 项目地址:https://github.com/PowerDos/Mall-Vue 项目预览地址(demo): https://powerdos.github.io/Mall-Vue/index... 阅读详情

前言

作为一个内心骚动想做点小系统的后端来说,学习Vue是过不去的一个坎,毕竟香嘛~

遂写一篇博文用于记录在Vue中用的比较多的,且不容易记的知识点,方便自己在需要使用时能够查找到相关知识点以及如何快速使用。

在基础篇中,已经介绍了关于Vuex中的一些基础知识点,下面就会陆续介绍Vuex中进阶的一些知识点,总结出来方便自己随时查阅。

正文

在官网上,对于Vuex的介绍为,Vuex是一个专为Vue.js应用程序开发的状态管理模式,说白了就是为了实现组件之间数据的共享。对于Vue来说,组件之间共享数据的方式:

父组件向子组件传值:v-bind属性绑定
子组件向父组件传值:v-on时间绑定
兄弟组件之间共享数据:EventBus
- $on 接受数据的那个组件
- $emit 发送数据的那个组件

一般情况下,只有组件之间共享的数据,才会必要存储到vuex中,对于组件中的私有数据,依旧存储在组件自身的data中即可。

本文是基于黑马《Vuex从入门到实战》视频总结+个人感悟而来

1 Vuex的基本使用

  1. 安装vuex依赖包

npm install vuex --save

  1. 导入vuex包
import Vuex from 'vuex'
Vue.use(Vuex)
  1. 创建store对象
const store = new Vuex.Store({
    // state中存放的就是全局共享的数据
    state: {count: 0}
})
  1. 将store对象挂载到vue实例中
new Vue({
    el: '#app',
    render: h => h(app),
    router,
    // 将创建的共享数据对象,挂载到Vue实例中
    // 所有的组件,就可以直接从store中获取全局的数据了
    store
})

2 Vuex的核心概念

Vuex中的主要核心概念如下:

  • State
  • Mutation
  • Action
  • Getter
2.1 State

在Vuex中,State提供唯一的公共数据源,所有共享的数据都要统一放到Store的State中进行存储,这里的Store相当于一个用于存储数据的公共容器。

const store = new Vue.Store({
    state: {
        count: 0
    }
    ...
})

组件访问State中数据的第一种方式

this.$store.state.全局数据名称

去过是在html元素组件之间调用,则可以省略this,即:

<span>{{$store.state.全局数据名称}}</span>

组件访问State中数据的第二种方式

通过mapState辅助函数方式,实现组件访问State中数据的第二种方式

// 1. 从vuex中按需导入mapState函数
import { mapState } from 'vuex'

通过刚才导入的mapState函数,将当前组件需要的全局数据,映射为当前的computed计算属性:

// 2. 将全局数据映射为当前组件的计算属性
computed: {
    // ...表示展开映射,意思就是将全局属性映射为当前组件的计算属性
    ...mapState(['count'])
}

直接在调用获取组件属性

<span>{{count}}</span>
2.2 Mutation

Vuex中的Mutation是用于变更Store中的数据。

在Vuex中,只能通过mutation变更Store数据,不可以直接操作Store中的数据。虽然通过mutation的方式来操作数据,虽然繁琐了一点,但是却可以集中监控所有数据的变化。

例如需要让全局数据自增加1,则可以通过如下的方式在Mutation中定义

const store = new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        add(state) {
            //变更状态
            state.count++;
        }
    }
})

定义完mutation之后,下面就来介绍下Vuex的触发方式

触发mutation方式一

通过$store.commit()函数来触发mutation。

methods: {
    handle1 () {
        // 触发mutations的第一种方式
        this.$store.commit('add')
    }
}

接着就可以通过@click方法来调用handle1,从而来触发mutation函数。

另外,可以在触发mutation函数时,传入参数

const store = new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        add(state) {
            //变更状态
            state.count++;
        },
        addN(state, n) {
            state.count += n;
        }
    }
})

然后定义handler2

methods: {
    handler2: {
        this.$store.commit('addN', 5);
    }
}

触发mutation方式二

通过导入mapMutations辅助函数来触发mutations。

// 1. 从vuex中按需导入mapMutations函数
import { mapMutations } from 'vuex'

...

// 2. 将制定的mutations函数映射为当前组件的methods函数
methods: {
    // 将add和addN方法映射为methods中的函数,拱当前组件使用。
    ...mapMutations({'add', 'addN'}),
    handleAdd() {
        this.add();
    },
    handleAddN(n) {
        this.addN(n);
    }
    // 或者直接在标签元素中直接@click=add()
}

对于mutations来说,只能够实现同步操作,不可以执行异步操作的。

2.3 Action

从vuex官网中可以了解到,Action类似于mutation,不同之处在于:

  • Action 提交的是 mutation,而不是直接变更状态。
  • Action 可以包含任意异步操作。

可以得出一个结论就是,如果通过异步操作变更数据,必须通过Action,而不能使用Mutation,但是在Action中还是要通过触发Mutation的方式间接变更数据。

如何定义Actions呢?

const store = new Vuex.Store({
    state: {
        count: 0
    },
    mutations: {
        add(state) {
            //变更状态
            state.count++;
        },
        addN(state, n) {
            state.count += n;
        }
    },
    actions: {
        // 通过context去调用mutation
        addAsync(context) {
            setTimeout(() => {
              context.commit('add'  
            }, 1000)
        },
        // 调用Actions是也可以传入参数
        addNAsync(context, n) {
            setTimeout(() => {
                context.commit('addN', n);
            }, 1000);
        }
    }
})

需要再次强调的是,只有通过mutation中定义的函数,才有权利去修改state中的数据,因此actions最终还是要调用mutation。

触发Actions的第一种方式

methods: {
    handleAddAsync() {
        this.$store.dispatch('addAsync');
    },
    handleAddNAsync() {
        this.$store.dispatch('addNAsync', n);
    }
}

触发Actions的第二种方式

可以通过mapActions辅助函数的方式来触发Actions。

// 1. 从vuex中按需导入mapActions函数
import { mapActions } from 'vuex'

...

// 2. 将指定的actions函数,映射为当前组件的methos函数
methods: {
    ...mapActions(['addAsync', 'addNAsync'),
    handleAddAsync() {
        this.addAsync();
    },
    handleAddNAsync(n) {
        this.addNAsync(n);
    }
}


2.4 Getter

在Vuex官网中,用到了派生这一词来介绍Getter,在这里可以理解为就是用于对Store中的数据进行加工处理,形成新的数据,类似Vue的计算属性。Getter的数据是基于Store中的数据的,所以当Store中数据发生变化时,Getter中的数据也会随之变化。

定义Getter

例如state中存有todos计划项,其对象有一个done状态表示完成与否。

const store = new Vuex.Store({
  state: {
    todos: [
      { id: 1, text: '...', done: true },
      { id: 2, text: '...', done: false }
    ]
  },
  getters: {
    // 这里通过getters定义的doneTodos方法来过滤已完成的todo项
    doneTodos: state => {
      return state.todos.filter(todo => todo.done);
    },
    // 这里还可以通过传入getters对象来获取其他方法
    doneTodosCount: (state, getters) => {
        return getters.doneTools.length;
    },
    // 传入参数
    getTodoById: (state) => (id) => {
        return state.todos.find(todo => todo.id == id);
    }
  }
})

触发Getter定义函数的第一种方法

this.$store.getters.doneTodos // -> [{id: 1, text: '...', done: true}]
this.$store.getters.doneTodosCount // -> 1

触发Getter定义函数的第二种方法

通过mapGetters来触发Getter中定义的函数

// 1. 导入mapGetters辅助函数
import { mapGetters } from 'vuex'

...

// 2. 将制定的Getters函数映射为当前组件的函数
methods: {
    ...mapGetters(['doneTodos', 'doneTodosCount']),
    handleDoneTodos() {
        this.doneTodos();
    }
}

2.5 Module

当Store中存放了非常多非常大的共享数据对象时,应用会变的非常的复杂,Store对象也会非常臃肿,所以Vuex提供了一个Module模块来分隔Store。通过对Vuex中的Store分隔,分隔成一个一个的Module模块,每个Module模块都拥有自己的state、mutation、actions和getters。

const moduleA = {
  state: () => ({ ... }),
  mutations: { ... },
  actions: { ... },
  getters: { ... }
}

const moduleB = {
  state: () => ({ ... }),
  mutations: { ... },
  actions: { ... }
}

const store = new Vuex.Store({
  modules: {
    a: moduleA,
    b: moduleB
  }
})

store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态

对于模块中的mutations和getters,传入的第一个参数规定为state,而actions则依旧是context参数。如下:

const moduleA = {
  state: {
     count: 0
  },
  mutations: {
    increment (state) {
      // 这里的 `state` 对象是模块的局部状态
      state.count++
    }
  },

  getters: {
    doubleCount (state) {
      return state.count * 2
    }
  },
  actions: {
  	// context对象其实包含了 state、commit、rootState。
  	incrementIfOddRootsum (context) {
		if ((context.state.count + context.rootState.count) % 2 === 1) {
        // 调用mutations
        commit('increment')
      }
  	}
  }
}

在module中通过mapState、mapGetters、mapActions和mapMutations等辅助函数来绑定要触发的函数

第一种方式

methods: {
	...mapActions([
		'some/nested/module/foo',
		'some/nested/module/bar'
	])
}

在vuex中,可以为导入的state、getters、actions以及mutations命名别名,,这样可以方便调用

methods: {
	...mapActions([
		'foo': 'some/nested/module/foo',
		'bar': 'some/nested/module/bar'
	])
}

第二种方式
对于这种情况,你可以将模块的空间名称字符串作为第一个参数传递给上述函数,这样所有绑定都会自动将该模块作为上下文。于是上面的例子可以简化为:

methods: {
  ...mapActions('some/nested/module', [
    'foo', // -> this.foo()
    'bar' // -> this.bar()
  ])
}

第三种方式
可以通过使用 createNamespacedHelpers 创建基于某个命名空间辅助函数。它返回一个对象,对象里有新的绑定在给定命名空间值上的组件绑定辅助函数:

import { createNamespacedHelpers } from 'vuex'

const { mapState, mapActions } = createNamespacedHelpers('some/nested/module')

export default {
  methods: {
    // 在 `some/nested/module` 中查找
    ...mapActions([
      'foo',
      'bar'
    ])
  }
}

总结

通过视频学习到Vuex基础知识后,再去Vuex的官方文档,阅读起来也不会那么的吃力了。

本文以自己能理解的方式详细介绍了Vuex的概念以及核心知识点,下面再总结一下:

  1. Vuex主要用于管理Vue组件中共享的数据。
  2. Vuex中有state、mutation、action、getter等核心概念。
  3. 获取state可以通过this.$store.state.xx或者是通过定义mapState来获取。
  4. 修改state中的变量需要通过mutation函数实现,而mutation的触发由两种方式,一种是通过this.$store.commit()函数,另外一种就是通过mapMutations来实现。
  5. mutation只能用于修改数据,而Actions可以实现异步操作。
  6. 通过Actions的异步操作+mutation的修改数据,可以实现异步修改数据。调用Actions有两种方式,第一种是通过this.$store.dispatch来调用,另外一种方式是通过mapActions来调用。
  7. Getters函数用于对Store中数据进行加工,不会修改原本Store中的数据;Getters中的数据会受Store中数据进行影响。

参考

优快云独家首发!万字长文,YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程!小白也能看懂!掌握了这个就掌握了魔改YOLO的核心! 🍀🍀🍀YOLOv5/v7/v8算法模型yaml文件史上最详细解析与教程,全网最强,学不会算我输!!! 阅读详情

相关推荐

【智驾与大模型】端到端与多模态大模型的精彩之旅

智驾和大模型的回顾与展望。开头的笔者自述也说了些心窝子话,边缘计算的监管刻不容缓!

仿生实验室:从0到1,制作人脸表情交互机器人,记录过程,软硬件全部开源,与君共襄盛举! 1318

VueX 安装使用(含TypeScript)

简单使用 Vuex (含TypeScript) 使用

CongPong的博客 392

OAI骨关节炎数据集申请与DICOM下载全流程避坑指南

医学影像分析中,DICOM格式是存储与交换CT、MRI等数据的通用标准,其元数据Tag承载着像素间距、层厚等关键物理信息,直接影响定量分析的准确性。在骨关节炎研究领域,OAI数据集因样本量大、随访时间长而成为高价值资源,但获取需通过NDA协议申请,并借助nda-tools命令行工具完成TB级影像的批量下载与断点续传。这一流程涉及浏览器环境配置、DICOM格式转换及Python预处理等工程环节,任一细节疏漏都可能导致数据读取异常或分析偏差。掌握从申请到落地的完整链路,能显著提升医学影像AI研究的效率与可复现性

weixin_30843121的博客 275

Vue——vuex的应用场景及属性

vuex的应用场景:构建中大型单面应用,需要考虑到如何更好地在组件外部管理状态。 vuex的5大属性: state, getters, mutations, actions, modules。 state:vuex的基本数据,用来存储变量 geeter:从基本数据(state)派生的数据,相当于state的计算属性 mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handl

qq_43201350的博客 816

Python爬取拼多多商品数据保姆级教程(附源码及效果图)

本文介绍了使用Python爬取拼多多商品数据的完整教程。通过DrissionPage库模拟浏览器操作,利用正则表达式提取嵌入在HTML中的商品数据(关键步骤是从window.rawData变量获取),解析后转换为结构化数据并导出Excel。教程包含八大步骤:环境配置、浏览器初始化、网络监听、搜索模拟、数据提取(核心是正则匹配JSON)、数据验证、字段解析和Excel导出,最后提供了封装好的函数可直接调用。该方法特别适合课程作业或毕业设计获取电商数据,能爬取商品名称、价格、销量等关键信息,处理了价格单位转换等

weixin_46449236的博客 2076

SAP ERP与金蝶云星空的集成案例(新能源光伏行业)

通过建设PLM、SAP、MES、WMS、SCADA、EAM等多系统集成的工业互联网平台作为数字化工厂的控制中枢,不仅可以实现人员、设备、物料、工艺参数、产品等生产全流程追溯管理,同时也可以根据数据采集进行生产现场的控制调节,最大程度降低能耗水平。销售订单创建下推金蝶采购订单创建修改、销售订单创建下推金蝶销售订单创建修改、销售发货过账下推金蝶采购入库单、销售发货过账下推金蝶销售出库单:在SAP ERP系统创建销售订单、销售发货过账单后推送到云星空系统,进行采购/销售订单的创建修改、完成物料的入库和出库流程。

集信通 1615

后端所需Vue知识快速学习

Vue,读音是/vju:/,是一套用于构建用户界面的渐进式框架,自底层向上应用,Vue的核心库只关注视图层,容易入门,可以和第三方库或者已有的项目进行整合,可以做复杂的单页应用。简单的说,vue是一套前端的开发框架,vue是目前三大主流的框架之一,其他两个框架是:React、Angular。Vue官网学习链接插槽:我们可以简单的理解为就是插座的插口,插座给我们预留了各种各样的插口,当我们需要电源时直接将插头插入即可。

qq_43456605的博客 2762

[附源码]计算机毕业设计Python财务管理系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程项目运行环境配置:Pychram社区版+py项目技术:django + python+ Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。推荐pycharm社区版;3.mysql环境:建议是用5.7版本均可。

巧灵计算机程序设计 1067

Vue 学习心得

Vue 的组件化开发是其最显著的特点之一。我学会了如何创建和使用组件,包括组件的注册、属性传递、事件触发等。在组件化开发过程中,我注重组件的独立性和复用性,尽量将组件设计得功能单一、接口清晰,以便在不同的项目和页面中进行复用。例如,我创建了一个通用的按钮组件,该组件可以接收不同的文本、样式和点击事件等属性,通过在不同的页面中引入这个按钮组件,并传递相应的属性,就可以快速地创建各种风格和功能的按钮,提高了开发效率和代码的一致性。

galagaoshou的博客 1132

RT-DETR算法优化改进:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测

DCNv4更快收敛、更高速度、更高性能,完美和RT-DETR结合,助力涨点

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1321

从底层结构开始学习FPGA(7)----进位链CARRY4

进位链CARRY4在FPGA实现加减法运算时扮演了什么角色?

孤独的单刀 1万+

来自后端对 vue+elementUI 的快速学习

Vue 作为一个后端,学习起来还是有点吃力,项目有用,还得硬着头皮学 Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 在官网学习了一些常用的用法,然后想当然的就去找项目跟着学了,第一个看的项目是vue-element-admin,发现无字天书一般看不懂 后...

Jesse_cool的博客 3079

SAP_MM模块采购订单显示含税价&不含税简介

不含税价(Net Price):基础商品价格,不包含税金。含税价(Gross Price):基础价格加上适用税金后的总价。在SAP中,采购订单通常以不含税价为基础,通过配置税码和定价方案,系统会自动计算含税总价。

我小时候很黑的博客 2300

coderwhy-vue学习

(新)2019Vue、Vuejs最详细教程-入门到项目实战 一、邂逅Vuejs 1、认识Vuejs 1.1 简单认识一下Vuejs Vue (读音 /vjuː/,类似于 view),不要读错。 Vue是一个渐进式的框架,什么是渐进式的呢? 渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更丰富的交互体验。 或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统...

xieanna123的博客 8483

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Spring&Vue学习】十二、状态管理VueX

对于组件化开发来说,大型应用的状态往往跨越多个组件。在多层嵌套的父子组件之间传递状态已经十分麻烦,而Vue更是没有为兄弟组件提供直接共享数据的办法。 基于这个问题,许多框架提供了解决方案——使用全局的状态管理器,将所有分散的共享数据交由状态管理器保管,Vue也不例外。

Better than yesterday. 2653

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Vue框架和前后端开发【Vuex】

vue-vuex Vuex官方文档 引入Vuex 安装 cnpm install vuex --save 引入到项目当中 main.js import Vue from 'vue' import App from './App.vue' import './registerServiceWorker' import router from './router' import Vuex from "vuex" Vue.use(Vuex) Vue.config.productionTip = false

LiLi的博客 2465

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

vuejs学习6.1 Vuex,state

VuexVuex概念状态管理管理什么状态单页面状态管理Vuex使用添加插件使用Vuex步骤Vuex状态管理图例 Vuex概念 Vuex是一个专为vuejs应用程序开发的状态管理模式,他采用集中式存储管理,状态可以理解为变量 状态管理 理解为多个变量需要共享,可以创建一个对象看作一个管家,多个组件需要使用时进行获取, 集中式存储管理即一起管理状态(变量) 这个管家对象数据是响应式的 可以自己封装一个对象来实现变量共享,但是无法做到响应式,所以创建了Vuex 管理什么状态 多个组件共享状态:例如登陆状态,用户名

qq_39225271的博客 198

Vue 使用 Vue-socket.io 实现即时聊天应用(vuex管理)

PS:动态地址问题、自动连接问题、vuex管理、学习建议 1. 动态socket地址问题 最近有小伙伴私信问动态地址问题,今天统一做一下答复,谈谈自己的理解。 所谓动态地址,就是请求后端接口,返回一个地址,然后你再连接这个socket.io服务器。如下示例: 基础数据 server.json: { "server":"http://localhost:9000" } 如上,我定义了一个基础JSON数据,里面有一个服务器地址,下面我们通过axios请求这个JSON文件,模拟后端返回..

~朴:shu的博客 5057

vue怎么和python后端交互_vuejs前后端数据交互之从后端请求数据的实例

vuejs前后端数据交互之从后端请求数据的实例本文将向大家介绍一种用vue-resource从后端请求数据的方法。比如说从后端请求一张表过来,(1)首先,在data中return一个msg:[]数组来接收表的数据;(2)在方法中定义一个请求函数,比如我们这里函数名定义为showDetails;methods:{showDetails:function(){this.$http.get(baseUR...

weixin_39747049的博客 3076

探索vue-blog技术架构:前端Vuex与后端Express的完美结合

vue-blog是一个基于Vue2 + Node.js + Mongodb的前后端分离个人博客项目,通过Vuex实现前端状态管理,搭配Express构建高效后端服务,为开发者提供了清晰的技术架构参考。 ## 📊 前端核心:Vuex状态管理 在vue-blog中,Vuex作为状态管理核心,集中管理应用的所有组件状态。项目的状态管理模块位于`src/store`目录下,包含以下关键文件: -

gitblog_00366的博客 1036

vue 之 vuex

默认情况下,模块内部的 action、mutation 和 getter 是注册在全局命名空间的——这样使得多个模块能够对同一 mutation 或 action 作出响应。的,页面刷新会导致 Vue 实例重新加载,进而 Vuex 中的数据被重置为初始状态。在 Vuex 的 mutation 或 action 中,监听数据的变化,将数据同步到浏览器的本地存储中。这些状态信息,我们都可以放在统一的地方,对它进行保存和管理,而且它们还是响应式的。页面刷新时,从本地存储中读取数据并恢复到 Vuex 中。

When you can't win by being better, you can win by being different. 1233

探索前端新纪元:Vue.js与Rails的完美碰撞 —— vuejs-rails开源项目推荐

探索前端新纪元:Vue.js与Rails的完美碰撞 —— vuejs-rails开源项目推荐 随着Web开发的日益复杂,前端框架的选择显得尤为重要。今天,我们要向您推荐的是一个将现代前端神器Vue.js与成熟的Ruby on Rails框架紧密结合的开源项目——vuejs-rails。 项目介绍 vuejs-rails 是一款专为 Rails 3.1 及更高版本设计的资产管线 gem,它使得在Ra...

gitblog_00568的博客 1450

【Vue系列复习】Vue-Router和Vuex实现原理

Vue-Router和Vuex实现原理 路由这个概念先是由后端提出的,简单来说路由就是用来跟后端服务器进行交互的一种方式,通过不同路径,来请求不同资源,请求不同页面是路由的一种功能。 前端路由: 1.hash模式 随着ajax的流行,异步数据请求交互运行在不刷新浏览器的情况下进行,而异步交互体验更高级的版本就是SPA—单页应用。单页应用不仅仅是在页面交互是无刷新的,并且在页面跳转都是无刷新的,为了实现SPA于是就有了现在的前端路由。 **类似于服务器路由,前端路由实现也很简单,就是匹配不同url路径,对其进

qq_45590098的博客 1320

vue学习路径 - 最全最新Vue、Vuejs教程,从入门到精通

Vue学习目录

全网同名:PBitW,更多内容,可以搜索《普通前端进阶记》 2591

推荐开源项目:Todos_Vuejs - 基于Vue.js的简洁待办事项应用

推荐开源项目:Todos_Vuejs - 基于Vue.js的简洁待办事项应用 项目简介 是一个由Vue.js构建的简单但功能完整的待办事项管理应用。它提供了一个直观的界面,让用户可以轻松添加、删除和切换任务状态,帮助提高日常工作效率。 技术分析 Vue.js:Todo应用的核心是Vue.js,这是一款轻量级的前端框架,以其易学易用和组件化特性著称。Vue.js的响应式数据绑定使得在Todo项的...

gitblog_00054的博客 591

vue2知识点:理解vuex、安装vuex、搭建vuex环境

《vue2知识点:理解vuex、安装vuex、搭建vuex环境》

刘大猫 919
上一篇: 后端学习Vue系列之——基础知识总结篇
下一篇: 实战电商后端系统(二)—— 将OAuth2认证和权限信息存入MySQL数据库
CoderBruis
博客等级 码龄10年 4444粉丝 102原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值