Vue传参和数据流设计

这篇具有很好参考价值的文章主要介绍了Vue传参和数据流设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue传参和数据流设计

props

react和vue中的props是父组件将值传递给子组件的形式,父组件可以将任何自己可以拿到的变量与方法,传递给子组件,并且传递是当时的值,后续子组件是不可以更改这个值的。

这么来说其实很多值只要子组件想要用,父组件总是可以做得到给子组件传递的,但是否所有的子组件需要的值,都应该用props传递呢?

我们换一个思路,如果我们去写一个加法函数,很显然他的参数需要两个数,返回值是一个数,这里输入的两个数就相当于是组件的props,在我们去设计组件的props时,就可以参考这种方法。

  • 举一个例子,如果我们有一个导航栏组件,其中会显示用户最在意的几个话题分类,右上角如果用户未登录显示登录按钮,如果登陆了显示头像。那么这个导航栏需要什么参数?我们很容易想到肯定需要登录状态,并且还要根据登录状态来加载他喜好的分类。但是思考一下,导航栏组件的父组件是谁?这个登录状态是父组件传给他的吗?

传参的本质

拥有某一状态(属性或行为的总称)的程序,将该状态放入需要这个状态的程序的上下文中(执行环境中,作用域中,怎么说都可以)

从刚才那个例子来讲,就是props是父组件为子组件传递状态的途径,刚才举的例子中,我们所需的状态(登录状态)其实应该存储于一个全局状态库,再由这个全局状态库来共享他的上下文,或者是让组件自发的去获取这个库来寻找他需要的上下文。

这个共享上下文的实现方法,其实非常简易,直接在根目录创建一个context.js,里面放一个大对象,装载全局上下文,谁想用就引入这个文件,然后用,想要改也可以引入这个文件,然后改。
现在讲的这一个思路就是非常简单的一个建立全局变量的方式,只不过这个全局变量不是默认引入的。

Vue官方提供的具体的几种传参方式

  • props 属性

语法就不赘述了,是数组式对象式,还是把所有的option都填写完整的形式,这些都无所谓,重点就是他的共享上下文是直接由父组件递交给子组件。

  • slot 插槽

这个传参也是父组件传给子组件,但是传的位置不一样,他是夹在父组件中间传的,也就是闭合标签的两个标签之间,传入的内容也更偏向于组件,或者渲染函数一类

  • provide inject 依赖注入

这个是官方提供的共享上下文的方式,由任意祖先组件将需要共享的数据“提供出来”provide,然后任意层级的子组件需要获取该信息的时候将该数据注入自己inject,这样就完成了上下文的共享,其中存储上下文的区域是祖先组件。其实这种用法就是小范围的vuex。

  • vuex / pinia

提供一个状态存储库store,任意组件可以通过直接引入store来获取需要的状态,任意组件可以利用已经声明的处理器函数mutation来更新store,因为加入了处理函数机制,修改变得更加有弹性,可以实现自定义业务,异步,数据处理等等许多其他的能力。

  • 手写context共享以及钩子

这个写好了的话,其实原理和vuex是一模一样的,只不过少引入了一个包,在不需要那么大规模但是上下文又有一点复杂的情况可以用,或者就是比如你是框架开发者,你没法强迫其他开发者因为用了你的框架而被迫选择vuex,那你就自己手搓vuex。

  • eventBus 事件总线

简单来说就是一方发送,一方接收,你可以理解为不用建立共享上下文的存储对象,就可以给任何层级的两个组件单向传值,本质上发布订阅模式,数据流的耦合方式是控制耦合,是极力不推荐的传参方式,用多了会让整个程序的数据流流向混乱。简单来形容,eventbus就是传参界的!important,不到万不得已是不采用的。文章来源地址https://www.toymoban.com/news/detail-657433.html

到了这里,关于Vue传参和数据流设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端向Java后端请求blob、arraybuffer类型的数据流

    前端需要获取后端音频文件,但遇到跨域问题,不能直接使用url获取,需求必须使用流将文件传到前端。因此,考虑Java后端读取音频文件,然后向前端发送数据流,前端按后端发送类型将数据接收,并合成其格式文件。 引入axios.min.js文件 其中,responseType:‘arraybuffer’,写成

    2024年02月13日
    浏览(57)
  • 【SpingBoot】详细介绍SpringBoot项目中前端请求到数据库再返回前端的完整数据流转,并用代码实现

    在SpringBoot项目中,前端请求到最终返回的完整数据流转一般包括以下几个步骤: 前端发送HTTP请求到后端Controller。 Controller接收到请求后,调用相关Service处理业务逻辑。 Service调用DAO层获取数据。 DAO层访问数据库获取数据。 数据库返回数据给DAO层。 DAO层将数据返回给Servic

    2024年02月10日
    浏览(41)
  • 大数据流批一体化架构设计

    1、当前生产环境因source端数据更改,导致后续计算重新运行情况时有发生,这样不仅牵扯开发精力而且十分消耗资源。 2、现有的数据处理方式不能更好的面向未来日益增多的需求。 3、业务线数据模型混乱,数据使用成本特别高。 4、需求驱动的烟囱式开发,完全没有复用的

    2024年02月14日
    浏览(40)
  • 实时数据流无忧:用 SpringBoot 和 SSE 打造动态前端更新的终极指南

    你知道什么是开发者的梦魇吗?慢!慢!慢!在一个需要实时数据更新的应用中,如果数据像乌龟一样慢吞吞地爬行,那用户体验就会像坐过山车一样直线下降。所以今天,我们要化身为数据传输的超级英雄,用 SpringBoot 和 SSE(服务器发送事件)打造一个超酷、超快、而且超

    2024年02月02日
    浏览(44)
  • 系统架构设计专业技能 ·结构化需求分析 - 数据流图

    现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 实体 实体可能是: (1)人物角色: 如客户、管理员、主管、经理、老师、学生 (2)组织机构 :如银行、供应商、募捐机

    2024年02月09日
    浏览(53)
  • 【软件设计师】程序猿需掌握的技能——数据流图

    作为一个程序员,不仅要具备高水平的程序编码能力,还要是熟练掌握软件设计的方法和技术,具有一定的软件设计能力,一般包括软件分析设计图(常见的有数据流图,程序流程图,系统流程图,E-R图)和其他对业务表达的说明资料。 数据流图(Data Flow Diagram,简称DFD)

    2024年02月20日
    浏览(49)
  • 后端接口返回图片(数据流)前端怎么处理(ArrayBuffer转base64)【包含PC以及小程序】

    MDN-前端必看网站 #最后如果axios的封装时有封装响应拦截器,如下: 要给这个if判断的条件做补充 这里放axios官网的请求配置中 responseType 可选值参考(封装axios必须了解) axios官网地址

    2024年02月14日
    浏览(45)
  • JS各种数据流之间的格式(ArrayBuffer、Uint8Array、Blob、 File、DataURL)相互转换及应用

    前端网页 File 上传、下载,Canvas 保存图片,Ajax 和 Fetch 二进制流传输,PDF 预览,浏览器上 WebAssembly 的应用 等等都需要到 ArrayBuffer 和 Blob 。 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要

    2024年02月08日
    浏览(42)
  • ❀工信工实验参考——《VHDL实验1——Quartus软件入门及双(单)向数据流总线的设计》

    一般来说,我贴上来的代码都是能直接跑的,如果不行可以邮箱交流1902946954@qq.com 仅供参考,微机的老师讲的很好,所以请还是要先自己完成咯。 免责声明,本人菜只因一只,内容仅供参考,错了不负责哈 地           点:      31  楼   312房; 实验台号: 实验日期与

    2024年02月06日
    浏览(37)
  • 银行储蓄系统的顶层数据流图及细化数据流图

    绘制出银行储蓄系统的顶层数据流图及细化数据流图; 银行储蓄系统存、取款流程如下: 1)业务员事先录入利率信息; 2)如果是存款,储户填写存款单,业务员将存款单键入系统,系统更新储户存款信息(存款人姓名、存款人账号、电话号码、身份证号码、存款金额、存

    2024年01月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包