vue3学习(七)

前言

        接上一篇学习笔记,今天主要是分享上次学习完了,还没来得及记录,趁今天晚上换换脑子的时间记录下。
        今天主要是记录的vuex文件的拆分,因为毕竟如果只在一个index.js文件写,文件会随着业务的复杂性上升,显得乱的很。另外简单的对了个开放接口,演示异步修改。


一、拆分后目录

在这里插入图片描述
其实主要就是store目录下index.js文件拆分state.js、actions.js、mutations.js(文件拆分)
modules目录则是按模块拆分,每个模块一个js文件。

二、vuex拆分知识点

在这里插入图片描述
在这里插入图片描述

三、拆分示例

App.vue

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <HelloWorld/>
</template>

<script setup>
import HelloWorld from './components/HelloWorld.vue'

</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

main.js

import { createApp } from 'vue'
import App from './App.vue'
import VuexStore from "./store";

const app = createApp(App)
app.use(VuexStore)
app.mount('#app')

组件HelloWorld.vue

<template>
  <div class="hello">
    <p>demo author:{{ author }}</p>
    <h1>list 数据</h1>
    <ul>
      <li v-for="item in list" :key="item.id">
        <p>{{ item.name }} | {{ item.age }} | {{ item.sex }}</p>
      </li>
    </ul>
    <p>辅助函数读取nickname:{{ nickname }}</p>
    <p>辅助函数读取localCurAge:{{ localCurAge }}</p>
    <p>修改Author:<input  @keyup="changeAuthor($event.target.value)"/></p>
    <p>辅助函数方式修改Author:<input  @keyup="setAuthor($event.target.value)"/></p>
    <p>异步修改Author:<input @change="syncChangeAuthor($event.target.value)"></p>
    <p>辅助函数方式异步修改Author:<input @change="loadUserInfo($event.target.value)"></p>
  </div>
</template>

<script>
import {mapState,mapMutations,mapActions} from "vuex";

export default {
  computed: {
    localCurAge: {
      get() {
        return 18;
      },
    },
    ...mapState(["author", "nickname", "list"]),
  },
  methods: {
    changeAuthor(value) {
      //方式一,使用commit提交
      this.$store.commit("setAuthor", value);
    },
    ...mapMutations(["setAuthor"]),
    syncChangeAuthor(value) {
      //方式二,使用dispatch提交,触发一个动作action
      this.$store.dispatch("loadUserInfo", value);
    },
    ...mapActions(["loadUserInfo"]) //映射为本地方法
  },

}

</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
  margin: 40px 0 0;
}

ul {
  list-style-type: none;
  padding: 0;
}

li {
  display: inline-block;
  margin: 0 10px;
}

a {
  color: #42b983;
}
</style>

store目录下
index.js

import {createStore} from 'vuex'
import state from "./state"
import mutations from "./mutations"
import actions from "./actions"


const modules = {}

const vuexStore = createStore({
    //用来存储状态数据
    state: state,
    mutations: mutations,
    actions: actions,
    modules: modules
})


export default vuexStore


actions.js

import axios from "axios";

export default {
    async loadUserInfo(context, username) {
        //第一个参数是上下文对象,第二个参数是传递过来的值,loadUserInfo是自定义的方法名,第一个对象是一个与store具有相同属性和方法的对象
        const loadUserInfoUrl = "https://gitee.com/api/v5/users/" + username;
        console.log(loadUserInfoUrl)
        const {data} = await axios.get(loadUserInfoUrl);
        console.log(data)
        //调用mutations中的方法(必须这样处理)
        context.commit('setAuthor', data.name)
    }
}

mutations.js

//用来改变状态数据,必须是同步操作
export default {
    //第一个参数是state,第二个参数是传递过来的值,setAuthor是自定义的方法名
    setAuthor(state, newValue) {
        state.author = newValue
    }
}

state.js

//定义一个对象,用来存储状态数据
export default {
    author: '韦小宝',
    nickname: '肥仔哥哥',
    list: [{
        name: 'tom',
        age: 1,
        sex: '男'
    },
        {
            name: 'jerry',
            age: 2,
            sex: '女'
        },
        {
            name: 'lili',
            age: 3,
            sex: '男'
        }]
}

四、效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

        简单的对了个开放接口,演示vuex状态管理的异步修改。


总结

  • vuex状态管理还是很强的,业务中状态管理应该会利用的比较多
  • vuex状态管理不支持API组合式,遗憾
            就记录到这里,与大家共同进步,uping!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/682547.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

益智内容教培教育课程小程序的效果是什么

从孩子出生开始&#xff0c;很多家长们就可以开始制定学习计划&#xff0c;幼儿园前后时间段益智学习家长们很看重&#xff0c;各样的线上课程、线下读本及老师指导等。 市场中也有相关从业公司&#xff0c;在品牌拓展和内容触达转化方面发力&#xff0c;客商双方服务获取条件…

王道408数据结构CH4_串

概述 4 串 4.1 串的实现 4.1.1 存储结构 定长顺序存储 #define Maxsize 255typedef struct{char *ch[Maxsize];int length; }SString;堆分配存储 typedef struct{char *ch;int length; }HString;块链存储 4.1.2 基本操作 4.2 模式匹配&#xff08;子串定位&#xff09; 4.2.…

如何有效防御.360勒索病毒:.360勒索病毒加密文件预防方法探讨

导言&#xff1a; 随着信息技术的飞速发展&#xff0c;网络安全问题也日益凸显。其中&#xff0c;勒索病毒作为一种新型的网络安全威胁&#xff0c;给用户和企业带来了极大的困扰和损失。特别是.360勒索病毒&#xff0c;以其独特的加密方式和恶劣的勒索手段&#xff0c;引起了…

宝兰德参编!《2023年中国数据库年度行业分析报告》正式发布

近日&#xff0c;墨天轮发布 《2023年中国数据库年度行业分析报告》&#xff08;以下简称《报告》&#xff09;。宝兰德深度参与《报告》重要章节内容的编写工作&#xff0c;凭借在中间件领域深厚的技术沉淀和丰富的实践经验&#xff0c;输出了大量具有专业性和前瞻性的意见&am…

计算机组成原理一轮

目录 一、计算机系统概论 组成 概念 二、计算机的运算方法 二进制和八进制、二进制和八进制间的转换 任意进制数转换为十进制数 十进制转二进制 移码 定点数的移位运算 定点数的加减运算 定点数的乘除运算 相乘 相除 溢出的判别方法 采用一位符号位 采用双符号…

【微机原理与汇编语言】并行接口8255实验

一、实验目的 掌握可编程并行接口芯片8255的工作原理及初始化方法掌握8255在实际应用中的硬件连接及编程应用 二、实验要求 根据实验室现有条件&#xff0c;针对实验任务&#xff0c;设计实验方案并进行实现。 三、实验内容 启动0#计数器&#xff0c;每计5个数&#xff08…

elasticsearch安装与使用(1)-使用docker安装Elasticsearch

1、Elasticsearch安装 docker network create elastic docker pull docker.elastic.co/elasticsearch/elasticsearch:8.3.3 docker run --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 -it docker.elastic.co/elasticsearch/elasticsearch:8.3.3-----------------…

大模型时代,是 Infra 的春天还是冬天?

Highlights 大模型时代元年感悟 Scaling Laws 是大模型时代的摩尔定律,是最值得研究的方向 LLM 发展的三个阶段: 算法瓶颈 -> 数据瓶颈 -> Infra 瓶颈 为什么 GPT 一枝独秀, BERT、T5 日落西山? 大模型时代,是大部分 Infra 人的冬天,少部分 Infra 人的春天(算法研…

PID控制算法介绍及使用举例

PID 控制算法是一种常用的反馈控制算法&#xff0c;用于控制系统的稳定性和精度。PID 分别代表比例&#xff08;Proportional&#xff09;、积分&#xff08;Integral&#xff09;和微分&#xff08;Derivative&#xff09;&#xff0c;通过组合这三个部分来调节控制输出&#…

【成都信息工程大学】只考程序设计!成都信息工程大学计算机考研考情分析!

成都信息工程大学&#xff08;Chengdu University of Information Technology&#xff09;&#xff0c;简称“成信大”&#xff0c;由中国气象局和四川省人民政府共建&#xff0c;入选中国首批“卓越工程师教育培养计划”、“2011计划”、“中西部高校基础能力建设工程”、四川…

eNSP学习——VRRP基础配置、多备份组、跟踪接口及认证

目录 主要命令 实验一、VRRP基础配置 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、部署OSPF网络 3、配置VRRP协议 4、验证VRRP主备切换 实验二、配置VRRP多备份组 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本…

LeetCode-82. 删除排序链表中的重复元素 II【链表 双指针】

LeetCode-82. 删除排序链表中的重复元素 II【链表 双指针】 题目描述&#xff1a;解题思路一&#xff1a;用一个cur即可实现去重cur.next cur.next.next背诵版&#xff1a;解题思路三&#xff1a;0 题目描述&#xff1a; 给定一个已排序的链表的头 head &#xff0c; 删除原始…

数据结构:模拟栈

数据结构&#xff1a;模拟栈 题目描述参考代码 题目描述 输入样例 10 push 5 query push 6 pop query pop empty push 4 query empty输出样例 5 5 YES 4 NO参考代码 #include <iostream>using namespace std;const int N 1000010;int m, x; int q[N]; string op; int…

2024年数字化经济与智慧金融国际会议(ICDESF 2024)

2024 International Conference on Digital Economy and Smart Finance 【1】大会信息 大会时间&#xff1a;2024-07-22 大会地点&#xff1a;中国成都 截稿时间&#xff1a;2024-07-10(以官网为准&#xff09; 审稿通知&#xff1a;投稿后2-3日内通知 会议官网&#xff1a;h…

使用libgpiod库中的事件方式监测多个输入事件

Linux下要同时检测多个GPIO输入的方法有很多&#xff0c;这里我使用libgpiod库中的API实现多个GPIO输入检测&#xff0c;可以达到类似STM32利用外部中断实现输入事件检测的效果&#xff0c;示例代码如下所示&#xff1a; /* 示例使用的libgpiod库版本为V1.2.1 */ //示例功能是…

前端逆向之下载canvas引用的图片

前端逆向之下载canvas引用的图片 一、来源二、解决三、如果在Network这里也找不到呢&#xff1f; 一、来源 当我们用dom检查器的时候无法选中想要扒下来的图片&#xff0c;只能选中canvas&#xff0c;这种时候该怎么办呢&#xff1f; 二、解决 这个时候应该换个脑子&#xf…

SAP PP学习笔记17 - MTS(Make-to-Stock) 按库存生产(策略70)

上几章讲了几种策略&#xff0c;策略10&#xff0c;11&#xff0c;30&#xff0c;40。 SAP PP学习笔记14 - MTS&#xff08;Make-to-Stock) 按库存生产&#xff08;策略10&#xff09;&#xff0c;以及生产计划的概要-CSDN博客 SAP PP学习笔记15 - MTS&#xff08;Make-to-St…

MySQL的联合索引及案例分析

1. 联合索引 关于联合索引的详解参考博客【Mysql-----联合索引和最左匹配】&#xff0c;包含讲解 最左匹配 联合索引失效的情况 不遵循最左匹配原则范围查询右边失效原理like索引失效原理 比较关注的点在于&#xff1a; 对A、B、C三个字段创建一个联合索引&#xff08;A, …

计算机SCI期刊,中科院3区,对国人相当友好

一、期刊名称 Image and Vision Computing 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;计算机科学 影响因子&#xff1a;4.7 中科院分区&#xff1a;3区 三、期刊征稿范围 图像和视觉计算的主要目标是为图像解释和计算机视觉各个方面的高质量理论和应…

跟着大佬学RE(四)

几个API函数 [ACTF新生赛2020]Universe_final_answer 一个很多方程组的函数&#xff0c;还有一个嗯&#xff0c;对input进行一些操作的函数 嗯&#xff0c;确实方程解出来得到 key 直接运行就可以得到 flag 了&#xff0c;不过还是去分析了一下。 v22 __readfsqword(0x28u);…