vuex怎么学(一)

vuex基础入门 前景提要 vue的基本特点: 双向绑定 虚拟 dom 组件化,模块化 组件化----》数据传值:父子,子父,非父子。单向数据流。ref 如果说我组件里面的数据比较复杂,组件之间的来回传值,来回传容易出错,并且很费劲 介绍 vuex 读:vue 叉 vuex是什么? 是一个对数据进行集中式管理的工具 帮助我们解决了什么问题? 数据传值繁琐问题 实现了数据的共享。数据:定义的DAT... 阅读详情

初学Vuex我想吐血,但是坚持下来,我还是入门了。。。

先来说说我现在的感受吧:

一个字: “草”
两个字: “草蛋”
三个字: “草尼玛”
一句话: “心中一万只草泥马奔腾而过。。。”
言归正传,学了 vue 基本语法,又学了 vue-router 这些好像都不难,但是vuex官方文档读了好几遍,还是不懂啥意思~~,官方给的示例也是没头没脑的,看不太懂,造成很多童鞋跟我一样,一度想放弃学习vuex,因为没有vuex也能写出来简单的项目。但是,宝强哥说过:不抛弃,不放弃。不能因为难而抛弃vuex,不能因为学不会而放弃,这些都是暂时的…[此处省略2048字…],话说回来,看官方文档学不会,不看官方文档更不可能学的会,所以,向下看 —>

先照着中文官网撸一遍:

  1. 安装以前的这部分我就不说了。
  2. “vuex是什么” —–> 状态管理模式(记着有这么个词就行了,我开始也不懂)

        // 官方代码:
        new Vue({
    
            // state
            data () {
                return {
                    count: 0
                }
            },
    
            // view
            template: `
                <div>{{ count }}</div>
            `,
            // actions
            methods: {
                increment () {
                    this.count++
                }
            }
        })

    这些都是浮云,我表示乱糟糟的,刚接触我也看不懂,只知道下面这几个概念字面意思

    • state,驱动应用的数据源;
    • view,以声明方式将state映射到视图;
    • actions,响应在view上的用户输入导致的状态变化。
    • 配的图还是贴过来吧,虽然看不懂,但是要有印象
      单项数据流
      vuex状态管理
  3. 知道上面三个概念就可以继续往下撸了 —–> “开始”进入vuex到世界

    • 先创建一个webpack项目:在命令行输入vue init webpack vuexdemo ,安装依赖和vuex
    • 在main.js中引入 vuex

          import Vuex from 'vuex';
          Vue.use(Vuex);
    • 来写个最简单的vuex状态管理

          const store = new Vuex.Store({
              state: {
                  count: 0
              },
              mutations: {
                  increment: state => state.count++,
                  decrement: state => state.count--
              }
          })
      
          // 在下面调用并改变状态试试
          store.commit('increment')
          console.log(store.state.count)      // 打印结果为 1 (注意放在vue实例对象前面)
    • 这样虽然完成了最简单的状态管理,但是不实用哇~~,这个也算不得vuex的状态管理呢
  4. 一步步来,首先来看看 “单一状态树” — state

    • 还是上面那个例子(我不会跟官网那样跳来跳去,我就用一个例子让你一点点证明白vuex是什么),现在这样写:
        // main.js 
        const store = new Vuex.Store({
            state: {
                count: 0
            },
            mutations: {
                increment: state => state.count++,
                decrement: state => state.count--
            }
        })
    
        new Vue({
            el: '#app',
            router,
            store,      // 将 store 在vue实例中申明并全局化,这样在其他组件中可以用 this.$store 调用 
            render: (h) => h(App)
        })
    
        // 组件 vuex1.vue (新建组件是要配置对应的路由的,否则是看不到组件效果的,这个这里不再赘述)
        <template>
            <div id="apd">
                <p>vuex1 -- {{ count }}</p>
                <p>
                    <button @click="increment">+</button>
                    <button @click="decrement">-</button>
                </p>
            </div>
        </template>
        <script>
            console.log(this.$state);
            export default({
                computed: {
                    count() {
                        return this.$store.state.count
                    }
                },
                methods: {
                    increment() {      
                        this.$store.commit('increment')
                        console.log(this.$store.state.count);
                    },
                    decrement() {
                        this.$store.commit('decrement')
                    }
                }
            })
        </script>
    • 这里我只说说我是怎么思考的
      1. 前面不是将store在vue实例中实例化了么,那么先在组件的script中打印下this.$store看看能不能调出来,并在控制台查看store的数据结构
      2. 在computed中获取state里保存的count,并返回给这个组件中的count(这里只是用同名的count来接收,你可以试试用不同的名字接收count)
      3. 至于这里的commit,仔细看store的数据结构的童鞋,可能会注意到里面有commit:function(){}的定义,这东西是胎带动方法,就这么用,记住就好。
      4. 一切准备好了就去页面试试吧。
    • 到这里,我想你对state是否有点理解了,他就是保存可在其他组件中使用的变量的
  5. 上面提到了mutation(释义:变化),这玩意儿开始就有,在这里我想给你解释下,state只能保存变量,自己没能力对变量操作,执行操作的是mutation,上面的加和减都是定义在mutations中的。事实上,vuex就是用mutation来动态操作state的。
    • mutation构成: 字符事件名称 + 回调函数
    • matation使用: store.commit(‘事件名’)
    • matation只能使用同步函数回调,异步回调需要有actions
  6. 到此我想你已经对这个vuex有点基础的了解了吧,我们在按照这个顺序展开联想,vuex是可以在兄弟组件中传递数据的,这个怎么做到的,把我们的示例改一下:

        // vuex2.vue
        <template>
            <div>
                {{ num }} -- <router-link to="/vuex1">切换到视图1</router-link>
            </div>
        </template>
    
        <script>
            export default{
                computed:{
                    num(){
                        return this.$store.state.count
                    }
                }
            }
        </script>

    运行一下,切换到vuex1的视图,随意加减,然后再切回来,可以看到我们vuex2视图中始终显示的是vuex1视图最终保存的结果

  7. 最后一部,我们来对vuex的写法美化一下,main.js中方太多东西乱七八糟的总不好(原谅我的强迫症)

    • 新建vuex文件夹,内建 store.js 、state.js 和 mutations.js 文件
    • 我们先把store放到store.js文件中去
        import Vue from 'vue'
        import Vuex from 'vuex'
    
        Vue.use(Vuex)
    
        const state = {
            count: 0
        }
        const mutations = {
            increment: state => state.count++,
            decrement: state => state.count--
        }
    
        export default new Vuex.Store({
            state,
            mutations
        })

    *注意此处*export default 是暴露模块的语法,大括号内是es6中json的简写,意为:state:state,mutations:mutations
    这样在main.js中只需要引入store.js(模块用import … from … 引入) 并在vue实例中申明即可,此处不需要再重复引入vuex了。

  8. 写程序要能举一反三,我们简化了main.js, store.js是否也可以简化呢?,是的:

        // state.js 
        const state = {
            count: 0
        }
    
        export default{
            state
        }
    
        // mutations.js
        const mutations = {
            increment: state => state.count++,
            decrement: state => state.count--
        }
    
        export default{
            mutations
        }
    
        // store.js
        import Vue from 'vue'
        import Vuex from 'vuex'
    
        import state from './state'
        import mutations from './mutation'
    
        Vue.use(Vuex)
    
        export default new Vuex.Store({
            state:state.state,
            mutations:mutations.mutations
        })

    注意此处我们引入的是state这个模块对象,而不是对象中的用来存储变量的state,所以需要使用state.state来正确引入状态。

至此,我们已经了解并配置好了一个简单的vuex项目了,这样的文件配置能很大程度的是我们的项目结构清晰化,方便以后的数据量很大时的维护问题,action部分的解读,下期继续…希望看了这篇笔记的你能掌握这种简单的方法,并且学得比我快@_@~

vuex + axios 做登录验证 并且保存登录状态的实例 还是那句话,网上找个完整的博客真的难,实现效果全靠摸索啊 第一步:安装axios 、vuex npm i -s axios npm i -s vuex 执行这两句 ,vue等环境搭建就不废话了 第二步:配置main.js文件 上图不上码,菊花万人捅,附上代码 // The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import 立即下载

相关推荐

FOC-滑膜控制器SMC/滑膜观测器SMO

三相PMSM是一个非线性、强耦合的多变量控制系统,对于外界的扰动或者电机自身的参数发生变化时,传统的PI控制并不能满足实际的要求。因此可以引入滑模控制SMC,它对扰动和参数不敏感,响应速度也够快。简单来说就是,滑膜观测器就是通过采样与坐标变换得到的Ualpha,Ubeta,Ialpha,Ibeta四个参数值,获取。SMO叫滑膜观测器(Sliding Mode Observer),用于获取转子位置信息与转速信息。2、作为滑膜观测器SMO,获取电机角度与转速信息。之间的误差来设计滑膜观测器,并通过该误差。

小胡同学的工程师学习之路 1万+

VueX快速入门(适合后端,无脑入门!!!)

作为一个没啥前端基础(就是那种跳过js直接学vue的那种。。。)的后端选手。按照自己的思路总结了一下对VueX的理解。大佬勿喷qAq。首先我们需要明确一个点,引入VueX的使用只是用来保存和操作全局变量的。类似于后端用ThreadLocal来保存当前线程的变量相关链接Vue官网首先我们先来了解VueX当中的五个属性:对于快速入门的选手而言,我们只需要了解前四个属性就好了,然后优先了解其中的Satae和Mutation就行这里先扔一张图,就是混个眼熟,后面会再提到。

hwp_ing的博客 1577

手把手教你为RK3588开发板适配RTL8211F网卡:设备树配置与PHY驱动匹配全流程

本文详细介绍了在RK3588开发板上适配RTL8211F千兆以太网PHY芯片的全流程,包括硬件原理图确认、设备树配置与PHY驱动匹配。通过实战案例和调试技巧,帮助开发者解决常见问题并优化网络性能,适用于嵌入式Linux开发中的Ethernet网络功能实现。

weixin_29184075的博客 527

前端学习之——Vue、Vuex

前言:  前端最流行的三大框架: Angular JS【Google】、React【Facebook】、Vue.js【国产:尤雨溪】 总的来说,它给你提供足够的optional,但并不主张很多required。 渐进式框架的大概意思就是你可以只用我的一部分,而不是用了我这一点就必须用我的所有部分。 一、Vue   1.Vue.js 是什么? Vue (读音 /vjuː/,...

心情舒畅 2830

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 439

S32K系列之PDB框图详解及PDB触发ADC

可编程延迟模块PDB,PDB可提供从内部或外部触发或可编程间隔信号到ADC硬件触发输入的可控制延迟。 PDB可以选择提供脉冲输出,用作CMP块中的采样窗口。 S32K系列的PDB资源如下表: PDB功能框图 在下图中,以下字母表示的意义: N:PDB通道的总数 n:PDB通道号,范围从0到N-1 M:每个PDB通道的总可用预触发 m:预触发编号,范围从0到M-1 Y:脉冲输出的总数 y:脉冲数...

zz56z56的博客 1万+

Vue基础(一)

一、Vue简介 Vue (读音 /vjuː/,类似于 view),不要读错。面试的时候大家一定要独对音调,不要读成V U E.虽然好像并没有什么卵用,不过显得专业!!!专业就是Money Vue是一个渐进式的前端框架,什么是渐进式的呢? VUE全家桶 ​ 渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。比如Core+Vue-router+Vuex+axios,也可以满足你各种各样的需求。 Vue的特点和Web开发

weixin_45257157的博客 3856

S32K314 EB配置MCAL全模块讲解【Autosar——1 MCU模块详解】持续更新中

FIRC(fast internal RC Oscillator) :高速内部时钟,固定48MHZ;SIRC(Slow Internal RC Oscillator):低速内部时钟,固定32KHZ;FXOSC(Fast Crystal Oscillator Digital Controller):高速外部晶振(8-40MHZ),根据原理图选型进行配置;SXOSC():外部低速外部时钟,固定输入32.768KHZ;PLL_PHIn_CLK:时钟倍频锁相环时钟范围(640-1280MHZ);

qq_40488886的博客 1786

Vue的学习之旅-part1

Vue 读作 /vju:/ 不要读成v u eVuex 的x读作叉 不要读成埃克斯博主DTcode7带您 溺亖在知识的海洋里,嘿嘿嘿.~🐒 个人主页——DTcode7 的博客🐒《微信小程序相关博客》《Vue相关博客》《前端开发习惯与小技巧相关博客》《AIGC相关博客》《photoshop相关博客》😚 吾辈才疏学浅,摹写之作,恐有瑕疵。望诸君海涵赐教。望轻喷,嘤嘤嘤 🙈🕍 愿斯文对汝有所裨益,纵其简陋未及渊博,亦足以略尽绵薄之力。倘若尚存阙漏,敬请不吝斧正,俾便精进!

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1405

SQLite学习——Dapper初识

dapper下载:https://www.nuget.org/packages/Dapper/1.40.0

jiDxiaohuo的博客 1305

第 1 篇:对象池模式 (Object Pool) —— 裸机下的动态内存革命

摘要:嵌入式开发中频繁malloc/free会导致内存碎片和性能问题。对象池模式通过预分配固定大小内存块和位图管理,实现O(1)时间复杂度的内存分配/释放。相比malloc,对象池具有无碎片、确定性执行时间、更低内存开销等优势,尤其适合实时系统。文章详细解析了基于位图的对象池实现原理,包括核心数据结构、高性能索引算法和关键API设计,并对比了空间/时间开销,最后讨论了零拷贝队列、调试水印等进阶用法。该模式能显著提升嵌入式系统的内存使用效率和稳定性。

一路往蓝-Anbo 的博客 427

跟着文档学Vuex(一):什么是Vuex

看完上面的介绍,你应该明白,Vuex的出现,就是一个统一的状态管理工具,如果你在项目中并没有太多的共享状态,那你可以不用,当你被共享的状态搞得焦头烂额时,那你一定要马上使用它。通过代码和图我们可以看到,data里是驱动应用的数据源(state),template是反应数据的视图窗口(View),method里的increment,响应view上用户的输入操作(Actions)它采用集中储存管理应用的所有组件的状态,并加以相应的规则保证状态以一种可预测的方式变化。著作权归作者所有,转载或内容合作请联系作者。

caihuayuan5的博客 387

【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(2)

实现功能:代码下载地址:下载地址 1)基于深度学习的目标检测;2)基于雷达的距离估计和预测;3)多传感器感知结果融合模块。 相机感知模块解析 4. Run nodes: python3 fusion_node/main.py python3 gps_node/main.py python3 radar_node/main.py python3 2d_detection_node/main.py #(additional instructions in 2d_detection_node/README.m

踟蹰横渡口,彳亍上滩舟。 9952

vuex的用法:新手入门。一学就会

1.安装: npminstallvuex--save 2.在main.js 同级新建store.js 3.编辑store.js 在store.js 引用 vuex   import Vue from 'vue'  import Vuex from 'vuex'  Vue.use(Vuex) 4.用export default 封装代码,让外部可以引用   const store = new Vuex.Store({     state : {       cou...

南北极之间 193

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Vuex核心用法,一学就会!(中秋特辑,快来get你的月饼啦)

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是附赠给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等详细大厂面试题答案、学习笔记、学习视频等资料领取,点击资料领取直通车免费领取!会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)[外链图片转存中…(img-GuPpWomU-1713571079161)]

2401_84098018的博客 949

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Vuex核心用法,一学就会!,web前端框架开发实例,醍醐灌顶

按照月饼工厂的设计图,咱们先大概模拟一下角色。,好比工厂仓库里面的存放的各色的月饼,有双黄莲蓉、水果酱、流苏、冰皮、五仁等等。在设计图部分,可以是仓库里面用来放月饼的架子,架子下面标注这月饼类型。,好比从仓库里面取月饼的通道,取出来的途中可以对月饼做一些点缀与包装,当然,也可以取“裸”月饼。,好比一条对月饼再次加工与升级的通道,通过它可以对仓库指定的架子里的月饼进行替换、加工、升级等。,是另一个对月饼进行加工的途径,但是这个途径不能直接取到月饼,而是要通过这条通道去对月饼加工。暂且先这么理解。

m0_60707538的博客 849

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

vuex状态管理(二)超级详细使用教程(包含辅助函数map的使用),一看就会,一学就懂

)超级详细使用教程(包含辅助函数map的使用),一看就会,一学就懂

jieweiwujie的博客 471

2024年最全Vuex核心用法,一学就会!(中秋特辑,快来get你的月饼啦),web开发增强

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】true,},咱们现在已经可以从仓库里面拿出月饼了,但是仓库的月饼有限,这可不行,咱们“家族生意”得做大做强,这时候需要生产新的月饼,或者对已有的月饼进行加工、升级。这时候就涉及到“存”操作了。1、直接存咱们可以通过取出,也可以通过这个方法加工已有或存入新的月饼。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】[外链图片转存中…(img-eNXh3B4H-1715043614877)]

2401_84617772的博客 333

浅谈vuex(一)

正如它的名字一样,它是用于处理Vuex的storer的模块化问题的:由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。官网中描述其好处为:“单一状态树让我们能够直接地定位任一特定的状态片段,在调试的过程中也能轻易地取得整个当前应用状态的快照。当多个组件需要共享一些状态时,比如用户的登录状态、用户的角色等,这些状态可以放在 Vuex 中进行管理,然后通过 Vuex 提供的接口在各个组件中进行访问和修改。用稍微通俗易懂的解释来说就是:它是组件内部的数据状态,即组件中data选项中定义的数据。

y2250114617的博客 1919

Vuex基础【一】

​ Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用存储管理应用的所有组件的状态,并以相应的规则保证状态以一种的方式发生变化。结论 初始化: vuex基础-state state是放置所有公共状态的属性,如果你有一个公共状态数据 , 你只需要定义在 state对象中 如何在组件中获取count? 1.原始形式- 插值表达式 组件中可以使用 this.$store 获取到vuex中的,可通过state属性属性获取count, 如下 2.计算属性- 将state属性定义在计算属性中

小管管的博客 3631

从Vuex的角度学Redux

编写返回函数的 action creators,接收 dispatch 和 getState 作为参数,允许你在异步操作完成后分发 actions。用于从 Redux store 中选择(读取) state。通过 dispatch,你可以触发 actions(同步或异步)。mapState、mapGetters、mapActions、mapMutations函数。types.js: 定义 Redux action 类型的常量。actions.js: 定义action creators。

m0_48143251的博客 578
上一篇: 微信小程序学习之路(一)
下一篇: 微信小程序学习之路(二) ------ 组件
EricLua
博客等级 码龄10年 34粉丝 33原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值