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提交,触发一个动作actionthis.$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!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0-1实现大模型

目录 输入数据准备 滑动窗口造数据 Data sampling with a sliding window 数据加载器的输出DataLoader 位置编码Encoding word positions 自注意力机制 点积的原理 QKV的原理 实现代码 Multi-head Attention 线性层 github: LLMs-from-scratch/ch02/01_main-chapte…

MySQL之查询性能优化(六)

查询性能优化 查询优化器 9.等值传播 如果两个列的值通过等式关联&#xff0c;那么MySQL能够把其中一个列的WHERE条件传递到另一列上。例如&#xff0c;我们看下面的查询: mysql> SELECT film.film_id FROM film-> INNER JOIN film_actor USING(film_id)-> WHERE f…

四川汇聚荣聚荣科技有限公司综合实力怎么样?

在科技日新月异的今天&#xff0c;企业的综合实力成为衡量其市场竞争力的重要指标。四川汇聚荣聚荣科技有限公司作为一家在行业内具有一定影响力的企业&#xff0c;其综合实力如何&#xff0c;自然成为外界关注的焦点。以下将从多个维度深入分析该公司的实力。 一、公司概况与核…

排序---快速排序

前言 个人小记 一、代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define MAX_ARR 100000 #define swap(a,b)\ {\__typeof(a) __ca;\ab,b__c;\ } #define TEST(func ,arr,l,r)\ {\int nr-l;\printf("tes…

Blender + Marvelous Designer(MD)服装,Quad Remesher四边面拓扑布线、UV投射

Blender Marvelous Designer&#xff08;MD&#xff09;服装&#xff0c;Quad Remesher四边面拓扑布线、UV投射_哔哩哔哩_bilibili BlenderMD服装&#xff0c;Quad Remesher四边面拓扑和UV投射 - 哔哩哔哩 https://i0.hdslb.com/bfs/article/b3f270cb02bb6de5cc080d732dc8…

模型测试优化

针对怼螺丝孔场景交叉测试 文章目录 修改一&#xff1a;修改二&#xff1a; 基于训练场景&#xff0c;进行修改&#xff0c;用以验证泛化性 模型说明&#xff1a;训练所用的物体模型上&#xff0c;有两个孔位&#xff0c;其中左侧为1号孔位&#xff0c;右侧为2号孔位 现状&…

QtCharts使用

1.基础配置 1.QGraphicsView提升为QChartView#include <QtCharts> QT_CHARTS_USE_NAMESPACE #include "ui_widget.h"2. QT charts 2.柱状图 2.1QBarSeries //1.创建Qchart对象QChart *chart new QChart();chart->setTitle("直方图演示");//设…

数据结构复习指导之归并排序、基数排序、计数排序

目录 1.归并排序 1.1二路归并操作的功能 1.2算法思想 1.3代码分析 1.4性能分析 2.基数排序 2.1算法思想 2.2基数排序的中间过程的分析 2.3性能分析 3.计数排序 3.1算法思想 3.2代码分析 3.3性能分析 知识回顾 1.归并排序 1.1二路归并操作的功能 归并排序与上述基…

【前端每日基础】day39——v-if 和 v-for优先级

Vue.js 中&#xff0c;v-if 和 v-for 是两个常用的指令&#xff0c;用于条件渲染和列表渲染。它们的优先级是一个重要的概念&#xff0c;因为在某些情况下&#xff0c;这两个指令可能会同时应用在同一个元素上。 v-if 和 v-for 的优先级 v-for 的优先级高于 v-if&#xff1a; …

Openresty人机验证流程

Openresty在访问正常页面的时候发现需要人机验证&#xff0c;然后跳人机验证页面&#xff0c;在完成人机验证后怎么跳转到正常的页面呢&#xff0c;整个流程。 在OpenResty中实现人机验证机制并在完成人机验证后跳转到正常页面&#xff0c;可以通过使用Nginx的配置、Lua代码以…

HarmonyOS鸿蒙-DevEco Studio工具

一、官网下载DevEco Studio工具地址 文章内容: 1、下载工具 2、运行项目 3、安装启动器 https://developer.harmonyos.com/cn/develop/deveco-studio/https://developer.harmonyos.com/cn/develop/deveco-studio/ 下载不同平台工具目录 : 二、 安装DevEco Studio工具 安装的配置…

Python连接WebService:深入探索与实战指南

Python连接WebService&#xff1a;深入探索与实战指南 在现代软件开发中&#xff0c;WebService作为一种跨平台、跨语言的服务交互方式&#xff0c;扮演着至关重要的角色。Python作为一种功能强大的编程语言&#xff0c;提供了丰富的库和工具来连接和使用WebService。本文将从…

LangChain学习之Agent的相关操作

1.学习背景 在LangChain for LLM应用程序开发中课程中&#xff0c;学习了LangChain框架扩展应用程序开发中语言模型的用例和功能的基本技能&#xff0c;遂做整理为后面的应用做准备。视频地址&#xff1a;基于LangChain的大语言模型应用开发构建和评估。 2.Agent的学习和使用…

如何令谷歌浏览器搜索时,子页面使用新窗口,而不是迭代打开

1 问题描述 工作相关需要常用谷歌浏览器&#xff0c;但是现在设置就是每次搜索后&#xff0c;点击搜索结果进去之后&#xff0c;都会覆盖掉原来的父页面&#xff0c;也就是如果我看完了这个子页面的内容&#xff0c;关掉的话&#xff0c;我就需要重新google.com来一遍。。。很…

Dinky MySQLCDC 整库同步到 MySQL jar包冲突问题解决

资源&#xff1a;flink 1.17.0、dinky 1.0.2 问题&#xff1a;对于kafka相关的包内类找不到的情况 解决&#xff1a;使用 flink-sql-connector- 胖包即可&#xff0c;去掉 flink-connector- 相关瘦包&#xff0c;解决胖瘦包冲突 source使用 flink-sql-connector- 胖包&#…

Java【springBoot和springCould引入外部jar包】

在项目的研发过程中&#xff0c;我们经常需要导入外部系统提供的jar包&#xff0c;并且这种jar包并没有上传到开源的maven仓库&#xff0c;属于内部环境的包&#xff0c;那么应该如何添加呢&#xff1f; springBoot 1、首先&#xff0c;将你的 JAR 文件拷贝到项目的 resource…

基础数学-求平方根(easy)

一、问题描述 二、实现思路 1.题目不能直接调用Math.sqrt(x) 2.这个题目可以使用二分法来缩小返回值范围 所以我们在left<right时 使 mid (leftright)/21 当mid*mid>x时&#xff0c;说明right范围过大&#xff0c;rightright-1 当mid*mid<x时&#xff0c;说明left范…

仅使用python标准库(不使用numpy)写一个小批量梯度下降的线性回归算法

看到一个有意思的题目&#xff1a;仅使用python的标准库&#xff0c;完成一个小批量梯度下降的线性回归算法 平常使用numpy这样的计算库习惯了&#xff0c;只允许使用标准库还有点不习惯&#xff0c;下面就使用这个过程来写一个。 import random from typing import List# 生…

层出不穷的大模型产品,你怎么选?【模板】

层出不穷的大模型产品&#xff0c;你怎么选&#xff1f; 随着近日腾讯元宝APP的正式上线&#xff0c;国内大模型产品又添一员。关于接连出现的“全能“大模型AIGC产品&#xff0c;你都用过哪些呢&#xff1f;不妨来分享一下你的使用体验吧&#xff01;在这些大模型产品中&…

使用Qt对word文档进行读写

目录 开发环境原理使用的QT库搭建开发环境准备word模板测试用例结果Gitee地址 开发环境 vs2022 Qt 5.9.1 msvc2017_x64&#xff0c;在文章最后提供了源码。 原理 Qt对于word文档的操作都是在书签位置进行插入文本、图片或表格的操作。 使用的QT库 除了基本的gui、core、…