管道在Vue和Angular中的作用及React的替代方案

管道在Vue和Angular中的作用及React的替代方案

前言

本文主要讲解管道在Vue和Angular中有哪些作用以及React对于管道概念的替代方案是什么。

管道起源

计算机中的Pipline(管道)常被认为起源于Unix,最初Mcllroy发现很多时候人们会将shell命令的输出传递给另一个shell命令,类似于管道。所以就提出了管道的概念。并在1973年实现了这个管道概念,使用|作为pipe的语法符号。此后,很多操作系统也引入了pipe概念,而Angular和Vue框架都引入了这个概念。

管道特点

  • 各个管道高内聚,专注解决某个问题。
  • 多个管道可以组合起来用于解决某个特定的问题

前端中管道概念和作用

概念

在Vue 和Angular 当中,pipe(管道)更像是一种设计模式,一种思想,它也能体现出函数式编程 :利用多个函数组合到一起用于解决某个特定的问题。强调组合大于继承 。同时又分为内置管道和自定义管道,内置管道加粗样式 就是框架中自己封装好的管道,拿来就可以用的管道。还可以通过自定义的方式自己封装一个管道进行使用。
angular内置管道:

javascript 复制代码
DatePipe:根据本地环境中的规则格式化日期。
 UpperCasePipe:字符串全部转换大写。
LowerCasePipe :字符串全部转换成小写。
CurrencyPipe :把数字转换成货币字符串,根据本地环境中的规则进行格式化。
 DecimalPipe:把数字转换成带小数点的字符串,根据本地环境中的规则进行格式化。
PercentPipe :把数字转换成百分比字符串,根据本地环境中的规则进行格式化。

Vue内置管道:

javascript 复制代码
capitalize:将字符串的第一个字符转换为大写
uppercase:字符串全部转换大写。
lowercase:字符串全部转换成小写。
currency:把数字转换成货币字符串,根据本地环境中的规则进行格式化。
date:将日期格式化为特定格式

作用

利用一个或者多个管道解决某个问题,比如我们想要一个数据是大写的文本,就可以通过{``{ data | UpperCasePipe}}进行格式化,这样获取到的数据就都是大写的了,那同时我们想要定义首字母大写的文本可以通过,创建一个自定义管道FirstUpper,来进行转换,同时这些管道之间也是可以进行组合使用。可以**{``{ data | uppercase | lowercase}}**同时使用,那么这时就进行了两个操作,第一是大写,第二是小写,最终获得的就是小写的字符串文本。

React关于管道的替代方案

React本身并没有引入管道的概念,我们知道Angular和Vue是双向数据绑定,它们的符号是{``{}},而在react中,所有{}其中的计算的所有内容都是JavaScript,可以通过在{}中调用某个方法来进行操作,如大写toUpperCase(),就可以写{ data.toUpperCase() }所以没有也不需要管道的概念。管道的内容可以直接通过React创建方法并在括号的数据中调用来实现。

Vue和Angular管道的区别

Vue的管道过滤器和Angular用法相同,不同的是Vue中使用filters:{}内部进行管道符的定义。而Angular创建管道过程:

javascript 复制代码
ng g pipe 文件夹名/文件名

Vue创建管道过程::在Vue实例中创建,filters,在filters中创建管道过滤器即可。fitlers中Vue的管道是局部管道,如果不暴露,则无法被其他组件使用,同时Vue引入了全局管道的概念。Angular管道都是暴露的,可以被全局使用。

Vue全局管道定义方式:

javascript 复制代码
Vue.filter("过滤器名称", 处理函数 );
相关推荐
Java后端的Ai之路9 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
jktantan18 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
小大宇21 小时前
Vue知识点-ElementPlus-06 单选+多选+下拉+日期选择
前端·vue.js·elementui
小大宇1 天前
Vue知识点-ElementPlus-05 输入框
前端·javascript·vue.js
软件技术NINI1 天前
基于SpringBoot和Vue的摇滚乐鉴赏网站
vue.js·spring boot·后端·spring·html·毕业设计·毕设
计算机毕设定制辅导-无忧学长1 天前
《基于物品协同过滤的闲置书换购微信小程序设计开发》
java·vue.js·spring boot·微信小程序·uniapp·闲置书换购微信小程序·物品协同过滤算法
liuchangng1 天前
React 19 + Vite 6 实战:从教材 PDF 到 866 词间隔重复单词 App
前端·react.js·pdf·vite·开源项目
Dwzun1 天前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
她说可以呀1 天前
Vue插槽
前端·javascript·vue.js
qq_448011161 天前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js