vue学习5

1.自定义创建项目

请添加图片描述

2.ESlint代码规范

正规的团队需要统一的编码风格
JavaScript Standard Style 规范说明:https://standardjs.com/rules-zhcn.html
规则中的一部分:
(1)字符串使用单引号 ‘aabc’
(2)无分号 const name = ‘zs’
(3)关键字后加空格 if(name = ‘ls’) {…}
(4)函数名后加空格 function name (arg) {…}
(5)坚持使用全等 = = = 摒弃 = =
解决方案:

  1. 手动修正
  2. 自动修正

3.vuex概述

  1. 是什么:
    官方解释: 一个vue的状态管理工具,状态就是数据
    大白话:是一个插件,可以帮助我们管理vue通用的数据(多组件共享的数据)
  2. 场景:
    (1)某个状态在很多个组件来使用(个人信息)
    (2)多个组件共同维护一份数据(购物车)
  3. 优势
    (1) 共同维护一份数据,数据集中化管理
    (2)响应式变化
    (3)操作简捷(vuex提供了一些辅助函数)

4.构建vuex[多组件数据共享]环境

  1. 创建项目
  2. 创建三个组件
  3. 源代码,cv

5.创建一个空仓库

  1. 安装vuex,yarn add vuex@3
  2. 新建vuex模块文件,新建store/index.js 专门存放vuex
  3. 创建仓库,Vue.use(Vuex) 创建仓库new Vuex.store()
  4. main.js导入挂载到Vue实例上
import Vue from 'vue'
import App from './App.vue'
import store from './store'Vue.config.productionTip = falsenew Vue({render: h => h(App),store
}).$mount('#app')

6.核心概念

1. state状态
  1. 如何给仓库提供数据
//创建仓库
const store = new.Store({
//state状态,即数据,类似于vue组件中的data
//区别:
//1. data是组件自己的数据
//2. state是使用自己共享的数据state:{count: 101}
})
  1. 如何使用仓库的数据
    (1)提供store之间访问
    请添加图片描述
    (2)通过辅助函数
    mapState是辅助函数,帮助把store中的数据自动映射到组件的计算属性中
import { mapState } from 'vuex'

导入mapState,数组方式引入state,展开运算符映射
请添加图片描述

computed:{...mapState(['count'])
}
2.mutations

明确vuex通用遵循单向数据流,组件中不能直接修改仓库的数据
通过:strict:true 可以开启严格模式

// 创建仓库(空仓库)
const store = new Vuex.Store({// 严格模式,有利于初学者学习,但是上线时要删掉strict:'true',// 通过state可以提供数据(所有组件共享的数据)state: {title:'仓库大标题',count: 100}
})

(1) 对象,在其中存放修改state的方法
所有mutations函数,第一个参数都是state
请添加图片描述
(2)组件中提交调用mutations

this.#store.commit(' addCount ')
3.mutations传参语法

提交mutations是可以传递参数的 this.$store.commit(‘xxx’, 参数)

  1. 提交mutations函数(带函数-提交载荷payload)
mutations: {...addCount (state, n) {state.count += n}
}
  1. 页面中提交调用mutations
this.$store.commit('addCount',  10)

注意点:
mutations参数有且只能有一个,如果需要多个参数,包装成一个对象

v-model 永远不能用在views中

4.辅助函数mapMutations

mapMutations和mapState很像,它是位于mutations中的方法提取了出来,映射到组件methods中
请添加图片描述

5.actions

处理异步操作
而mutations必须是同步的(便于监测数据变化,记录调试 )

  1. 提供actions方法
actions: {setAsyncCount (context, num) {//一秒后,给一个数,去修改numsetTimeout(() => {context.commit('changeCount', num)}, 1000)}
}
  1. 页面中dispatch调用
this.$store.dispatch('setAsyncCount', 200)
6.辅助函数-mapActions

mapActions是把位于actions中的方法提取出来,映射到组件methods中请添加图片描述

7.getters

说明:我们需要从state中派生出一些状态,这些状态是依赖state的,此时会用到getters(类似于计算属性)

  1. 定义getters
getters: {//注意://(1)getters函数的第一个参数是state//(2)getters函数必须要有返回值filterList(state) {return state.list.filter(item =>  item > 5 )}
}
  1. 访问getters
通过store访问getters
{{ $store.getters.filterList }}
通过辅助函数mapGetters映射
computed: {...mapGetters(['filterList'])
}{{ filterList }}
8.模块module(进阶语法)

所有数据,更新,操作都在一起,项目越大,越难维护,所以要分模块
模块拆分:
user模块:store/modules/user.js
使用模块中的数据
(1)直接通过模块名访问$store.state.模块名.xxx
(2)通过mapState映射
默认根级别的映射 mapState([’ xxx ‘])
子模块的映射 mapState(‘模块名’,[’ xxx ']) - 需要开启命名空间

export default {namespaced: true,state,mutations,actions,getters
}

使用模块中getters的数据
(1)直接通过模块名访问$store.getters[‘模块名/xxx’]
(2)通过mapGetters映射
默认根级别的映射 mapGetters([’ xxx ‘])
子模块的映射 mapGetters(‘模块名’,[’ xxx ']) - 需要开启命名空间

export default {namespaced: true,state,mutations,actions,getters
}

使用模块中mutations的数据
注意:默认模块中的mutations和actions会被挂载到全局,需要开启命名空间,才会挂载到子模块。
(1)直接通过store调用 $store.commit(‘模块名/xxx’, 额外参数)
(2)通过mapMutations映射
默认根级别的映射 mapMutations([’ xxx ‘])
子模块的映射 mapMutations(‘模块名’,[’ xxx ']) - 需要开启命名空间

export default {namespaced: true,state,mutations,actions,getters
}

使用模块中action的数据
注意:默认模块中的mutations和actions会被挂载到全局,需要开启命名空间,才会挂载到子模块。
(1)直接通过store调用 $store.dispatch(‘模块名/xxx’, 额外参数)
(2)通过mapActions映射
默认根级别的映射 mapActions([’ xxx ‘])
子模块的映射 mapActions(‘模块名’,[’ xxx ']) - 需要开启命名空间

export default {namespaced: true,state,mutations,actions,getters
}

7.综合案例-购物车

下载json-serve
请添加图片描述
请添加图片描述
请添加图片描述

8.智慧商城项目

请添加图片描述
api接口模块:发送ajax请求的接口模块
utils工具模块: 自己封装的一些工具方法模块

1.vant组件库

组件库:第三方封装好了很多很多的组件,整合到一起就是一个组件库
https://vant-contrib.gitee.io/vant/v2/#/zh-CN/
请添加图片描述
移动端:按需导入

<template><div id="app"><!--测试代码--><van-button type="primary">主要按钮</van-button><van-button type="info">信息按钮</van-button><van-button type="default">默认按钮</van-button><van-switch v-model="checked" /><van-rate v-model="score" ></van-rate><router-view/></div>
</template><script>
export default {data () {return {checked: true,score: 5}}
}
</script><style lang="less"></style>
2.项目中的vw适配

基于postcss插件,实现项目vw适配

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

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

相关文章

QTreeView和QTableView单元格添加超链接

QTreeView和QTableView单元格添加超链接的方法类似,本文仅以QTreeView为例。 在QTableView仿Excel表头排序和筛选中已经实现了超链接的添加,但是需要借助delegate,这里介绍一种更简单的方式,无需借助delegate。 一.效果 二.实现 QHTreeView.h #ifndef QHTREEVIEW_H #def…

Qt监控设备离线检测/实时监测设备上下线/显示不同的状态图标/海康大华宇视华为监控系统

一、前言说明 监控系统中一般有很多设备&#xff0c;有些用户希望知道每个设备是否已经上线&#xff0c;最好有不同的状态图标提示&#xff0c;海康的做法是对设备节点的图标和颜色变暗处理&#xff0c;离线的话就变暗&#xff0c;有可能是加了透明度&#xff0c;而大华的处理…

IDEA+DeepSeek让Java开发起飞

1.获取DeepSeek秘钥 登录DeepSeek官网 : https://www.deepseek.com/ 进入API开放平台&#xff0c;第一次需要注册一个账号 进去之后需要创建一个API KEY&#xff0c;然后把APIkey记录保存下来 接着我们获取DeepSeek的API对话接口地址&#xff0c;点击左边的&#xff1a;接口…

docker学习笔记

1.docker与虚拟机技术的不同 传统虚拟机&#xff1a;虚拟出一条硬件&#xff0c;运行一个完整的操作系统&#xff0c;然后在这个系统上安装和运行软件。容器内的应用直接运行在&#xff0c;宿主机的内容&#xff0c;容器是没有自己的内核的&#xff0c;也没有虚拟我们的硬件每…

Linux之kernel(4)netlink通信

Linux内核(04)之netlink通信 Author: Once Day Date: 2023年1月3日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可查看专栏: Linux内核知识_Once-Day的博客-…

视觉硬件选型和算法选择(CNN)

基础知识 什么是机械视觉: 机械视觉是一种利用机器代替人眼来进行测量和判断的技术&#xff0c;通过光学系统、图像传感器等设备获取图像&#xff0c;并运用图像处理和分析算法来提取信息&#xff0c;以实现对目标物体的识别、检测、测量和定位等功能。 机械视觉与人类视觉有什…

Qt元对象系统

目录 1.元对象系统概述 2 宏QOBJECT slots emit 2.1 QOBJECT 2.2 信号槽相关宏 3 信号和槽 3.1 信号和槽的链接使用 3.2 信号槽触发流程 3.3 信号参数自定义 3.4 槽函数中获取发射信号的对象&#xff08;widget&#xff09; 3.4.1 使用QObject::sender() 3.4.2 在连…

verilog练习:i2c slave 模块设计

文章目录 前言1. 结构2.代码2.1 iic_slave.v2.2 sync.v2.3 wr_fsm.v2.3.1 状态机状态解释 2.4 ram.v 3. 波形展示4. 建议5. 资料总结 前言 首先就不啰嗦iic协议了&#xff0c;网上有不少资料都是叙述此协议的。 下面将是我本次设计的一些局部设计汇总&#xff0c;如果对读者有…

什么是中间件中间件有哪些

什么是中间件&#xff1f; 中间件&#xff08;Middleware&#xff09;是指在客户端和服务器之间的一层软件组件&#xff0c;用于处理请求和响应的过程。 中间件是指介于两个不同系统之间的软件组件&#xff0c;它可以在两个系统之间传递、处理、转换数据&#xff0c;以达到协…

【键盘识别】实例分割

第一步 键盘检测 方案一 canny边缘检测 canny边缘检测检测结果不稳定,容易因为复杂背景或光线变换检测出其他目标。 如图是用canny边缘检测方法标出的检测出的边缘的四个红点。 参考的是这篇文章OpenCV实战之三 | 基于OpenCV实现图像校正_opencv 图像校正-CSDN博客 方案二…

线程上下文-ThreadLocal原理

ThreadLocal主要作用&#xff1a;为每个线程提供独立的变量副本&#xff0c;实现线程间的数据隔离&#xff0c;从而避免多线程环境下的资源共享冲突。 原理 ThreadLocal有个内部类 ThreadLocalMap&#xff0c;顾名思义是个Map结构&#xff1a;key为 ThreadLocal实例&#xff0…

【Python】元组

个人主页&#xff1a;GUIQU. 归属专栏&#xff1a;Python 文章目录 1. 元组的本质与基础概念1.1 不可变序列的意义1.2 元组与数学概念的联系 2. 元组的创建方式详解2.1 标准创建形式2.2 单元素元组的特殊处理2.3 使用 tuple() 函数进行转换 3. 元组的基本操作深入剖析3.1 索引操…

SpringSecurity:授权服务器与客户端应用(入门案例)

文章目录 一、需求概述二、开发授权服务器1、pom依赖2、yml配置3、启动服务端 三、开发客户端应用1、pom依赖2、yml配置3、SecurityConfig4、接口5、测试 一、需求概述 maven需要3.6.0以上版本 二、开发授权服务器 1、pom依赖 <dependency><groupId>org.springfr…

android的Compose 简介

Jetpack Compose 简介 Jetpack Compose 是 Android 官方推出的声明式 UI 工具包&#xff0c;用于替代传统 XML 布局&#xff0c;简化界面开发流程。它基于 Kotlin 语言&#xff0c;通过函数式编程实现高效、灵活的 UI 构建&#xff0c;支持实时预览和更直观的状态管理。 优势…

四次挥手详解

文章目录 一、四次挥手各状态FIN_WAIT_1CLOSE_WAITFIN_WAIT_2LAST_ACKTIME_WAITCLOSE 二、双方同时调用close()&#xff0c;FIN_WAIT_1状态后进入CLOSING状态CLOSING状态 三、TIME_WAIT状态详解(1) TIME_WAIT状态下的2MSL是什么MSL &#xff08;报文最大生存时间&#xff09;为…

LIMO:上海交大的工作 “少即是多” LLM 推理

25年2月来自上海交大、SII 和 GAIR 的论文“LIMO: Less is More for Reasoning”。 一个挑战是在大语言模型&#xff08;LLM&#xff09;中的复杂推理。虽然传统观点认为复杂的推理任务需要大量的训练数据&#xff08;通常超过 100,000 个示例&#xff09;&#xff0c;但本文展…

51单片机之引脚图(详解)

8051单片机引脚分类与功能笔记 1. 电源引脚 VCC&#xff08;第40脚&#xff09;&#xff1a;接入5V电源&#xff0c;为单片机提供工作电压。GND&#xff08;第20脚&#xff09;&#xff1a;接地端&#xff0c;确保电路的电位参考点。 2.时钟引脚 XTAL1&#xff08;第19脚&a…

基于yolov11的阿尔兹海默症严重程度检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的阿尔兹海默症严重程度检测系统是一种创新的医疗辅助工具&#xff0c;旨在通过先进的计算机视觉技术提高阿尔兹海默症的早期诊断和病情监测效率。阿尔兹海默症是一种渐进性的神经退行性疾病&#xff0c;通常表现为认知障碍、记忆丧失和语言障碍等症状…

TAPEX:通过神经SQL执行器学习的表格预训练

摘要 近年来&#xff0c;语言模型预训练的进展通过利用大规模非结构化文本数据取得了巨大成功。然而&#xff0c;由于缺乏大规模高质量的表格数据&#xff0c;在结构化表格数据上应用预训练仍然是一个挑战。本文提出了TAPEX&#xff0c;通过在一个合成语料库上学习神经SQL执行…

轻松理解CSS中的float浮动元素

1.float:left&#xff0c;float:right可以让元素脱离原始文档流&#xff0c;也就是所谓的“浮动”&#xff0c;可以理解为元素漂浮在原本所占位置的上空&#xff0c;意思是元素漂浮起来了&#xff0c;不占原始文档流的空间。但是&#xff0c;别的元素可以感知到浮动元素的存在&…