位置: IT常识 - 正文

vue在html标签 {{}} 中调用函数的方法(vue项目内html)

编辑:rootadmin
vue在html标签 {{}} 中调用函数的方法

目录

一、问题

1)实现上述需求:有两种方式

2)两种实现方式对比:

二、解决方法(在html渲染时调用函数)

 三、总结


推荐整理分享vue在html标签 {{}} 中调用函数的方法(vue项目内html),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue中标签,vue中的标签,vue的标签,vue的标签,vue html页面,vue项目内html,vue绑定html标签,vue的标签,内容如对您有帮助,希望把文章链接给更多的朋友!

注:不想仔细看的,可以直接看有颜色的及代码哟

一、问题

1.在html中对数据中的某一个标签是根据标签的类型书写的,值写在了{{}}中,希望显示的时候对值做某种细节处理。

例如:我的需求:后端返回姓名、年龄、出生日期、学历等组成的一个数组,出生日期要保存为带有时分秒的,但是显示时不需要时分秒。

1)实现上述需求:有两种方式

a.方式一:

直接在接口调用收到数据时判断数据类型,并对数据进行处理。

b.方式二:

在显示的时候再调用函数处理数据(html标签的{{}}中处理)

2)两种实现方式对比:

前提:由于有些要用输入框、有些要用下拉框,有些又要用日期选择框;我使用v-for渲染时就根据不同的控件类型分别渲染。

a.如果使用方式一就会二次对是否是出生日期的判断(第一次接收到数据去除时分秒要判断,第二次html渲染的时候判断);使用方式二则只需要对是否是出生日期进行一次判断(只在html渲染的时候判断)——方式二能减少 if-else书写的次数

b.如果数据还需要原样返回给后端,那么使用方式二显然是perfect,没有修改原数据,只是返回了想要的数据;使用方式一就必须存一个备份数据,如果需要单独处理的数据多了,简直就是一场灾难(保留一堆其实没必要保存的数据)——方式二保留了原始数据,避免了冗余数据

c.如果有很多地方需要进行同样的处理,函数无疑是更好的选择。——一次书写,多处调用,提高了代码的可维护性

所以选择方式二实现需求,怎样在html渲染时调用函数呢?

二、解决方法(在html渲染时调用函数)

1.定义处理函数

//与后端约定返回的数据格式是这样的:'2020-04-09 08:30:00' 年月日和时分秒之间用空格分隔export const formatBorntime=(borntime)=>{ //处理逻辑 //****** //返回处理好的数据 return borntime.split(" ")[0];}

2.引入处理函数,在data中定义函数,在html中使用

<template> <div v-for="(item,key) of personInfo"> <template v-if="key === 'borntime'"> <div class="info-title">{{ item.label }}</div> <span>:</span> <!-- 3.使用方法formatDateMethod--> <el-tooltip effect="dark" :content="formatDateMethod(new Date(item.value))).toString()" placement="top" > <!-- 3.使用方法formatDateMethod--> <div class="info-content"> {{ formatDateMethod(new Date(item.value)).toString() }} </div> </el-tooltip> </template> <template v-else> <div class="info-title">{{ item.label }}</div> <span>:</span> <el-tooltip effect="dark" :content="item.value.toString()" placement="top" > <div class="info-content"> {{ item.value }} </div> </el-tooltip> </template> </div></template><script>//1.引入处理出生日期显示的函数import { formatBorntime } from "@/utils/common";export default{ data(){ //2.在data中定义方法 formatDateMethod:formatBorntime, personInfo: { patientname: { label: "姓名", value: "", }, patientage: { label: "年龄", value: "", }, borntime: { label: "出生日期", value: "2022-04-06 00:00:00", }, height: { label: "身高(cm)", value: "", }, }, }}</script>vue在html标签 {{}} 中调用函数的方法(vue项目内html)

注:必须在data中定义  或者  methods中定义该方法,否则无法直接使用(报错:html中使用的函数不存在或不是响应式的)

1)在data中定义

  data(){     formatDateMethod:formatBorntime,

}

2)在methods中定义

  methods: {     formatDateMethod(params1){       return formatBorntime (params1);     }

  }

3.效果

4.优化

  ----------------------2022/11/21更新-------------------------------------------------------------------------------------

    上面的方法的确可以解决问题,但是更合理的方式是  使用 computed计算属性,computed中写处理逻辑(personInfo变化时,处理 borntime的格式)。

    原因:computed可以缓存计算结果,在borntime没有变化时,不会再次调用处理逻辑。而直接写的方法调用,在每次渲染HTML时都会被调用。computed 性能更好一些。

<template> <div v-for="(item,key) of personInfo"> <template v-if="key === 'borntime'"> <div class="info-title">{{ item.label }}</div> <span>:</span> <!-- 3.使用computed属性 borntime_deal --> <el-tooltip effect="dark" :content="borntime_deal" placement="top" > <!-- 3.使用computed属性 borntime_deal--> <div class="info-content"> {{ borntime_deal }} </div> </el-tooltip> </template> <template v-else> <div class="info-title">{{ item.label }}</div> <span>:</span> <el-tooltip effect="dark" :content="item.value.toString()" placement="top" > <div class="info-content"> {{ item.value }} </div> </el-tooltip> </template> </div></template><script>//1.引入处理出生日期显示的函数import { formatBorntime } from "@/utils/common";export default{ data(){ personInfo: { patientname: { label: "姓名", value: "", }, patientage: { label: "年龄", value: "", }, borntime: { label: "出生日期", value: "2022-04-06 00:00:00", }, height: { label: "身高(cm)", value: "", }, }, }, computed:{ // 2.根据 personInfo.borntime.value 处理 borntime的格式(因为要渲染整个personInfo,所以personInfo一定是变化的,可以正确拿到borntime) borntime_deal(){ return formatBorntime(personInfo.borntime.value).toString() } }}</script> 三、总结

1.我也是今天遇到上面这个需求,突然想到这样做。对比中第二点说的问题:其实之前遇到过类似的问题,有的地方需要对数据处理,有的地方又要保留原始数据,但是还备份了一组数据,现在想想就是给自己制作麻烦,还浪费了空间……

/*

希望对你有帮助!

如有错误,欢迎指正,谢谢!

*/

本文链接地址:https://www.jiuchutong.com/zhishi/298655.html 转载请保留说明!

上一篇:自动驾驶决策规划-控制方向学习资料总结(附相关资料的链接)(自动驾驶决策规划技术理论与实践电子版)

下一篇:SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者(sql server2016使用)

  • 新浪微博粉丝推广技巧(微博粉丝推广有用吗)

    新浪微博粉丝推广技巧(微博粉丝推广有用吗)

  • 从精细化运营出发,企业数字化运营策略和思维(精细化运营的四个原则)

    从精细化运营出发,企业数字化运营策略和思维(精细化运营的四个原则)

  • QQ空间推广你真的会用吗(qq空间推广你真实吗)

    QQ空间推广你真的会用吗(qq空间推广你真实吗)

  • 淘宝商品怎么发链接给朋友(淘宝商品怎么发布)

    淘宝商品怎么发链接给朋友(淘宝商品怎么发布)

  • 360门铃怎么重新连接无线网(360门铃怎么重新设置)

    360门铃怎么重新连接无线网(360门铃怎么重新设置)

  • iqoo7怎么强制关机(iqoo7怎么强制重启)

    iqoo7怎么强制关机(iqoo7怎么强制重启)

  • 苹果11怎么设置动态壁纸声音(苹果11怎么设置双卡双待)

    苹果11怎么设置动态壁纸声音(苹果11怎么设置双卡双待)

  • 小米10和小米10青春版区别(小米10和小米10至尊纪念版手机壳通用吗)

    小米10和小米10青春版区别(小米10和小米10至尊纪念版手机壳通用吗)

  • 手机开飞行模式可以收到信息吗(手机开飞行模式会怎么样)

    手机开飞行模式可以收到信息吗(手机开飞行模式会怎么样)

  • tag tl00什么型号(trttl00)

    tag tl00什么型号(trttl00)

  • 怎样避免微信分身封号(怎样避免微信分身登录)

    怎样避免微信分身封号(怎样避免微信分身登录)

  • 打印机未指定是怎么回事(打印机未指定是怎么回事已经装了驱动了)

    打印机未指定是怎么回事(打印机未指定是怎么回事已经装了驱动了)

  • 在计算机中文件是储存在(在计算机中文件指的是什么)

    在计算机中文件是储存在(在计算机中文件指的是什么)

  • 华为手机可以用电信卡吗(华为手机可以用airpods吗)

    华为手机可以用电信卡吗(华为手机可以用airpods吗)

  • 电脑微信开机自动启动取消(电脑微信开机自动启动怎么设置)

    电脑微信开机自动启动取消(电脑微信开机自动启动怎么设置)

  • 拼多多怎么查编号(拼多多怎么查编码信息)

    拼多多怎么查编号(拼多多怎么查编码信息)

  • 如何申请微信收款码牌(如何申请微信收款商业版)

    如何申请微信收款码牌(如何申请微信收款商业版)

  • vivo手机用户中心在哪(vivo帐户app)

    vivo手机用户中心在哪(vivo帐户app)

  • 华为mate20拍照怎么显示时间(华为mate20拍照怎么拍出单反相机的感觉)

    华为mate20拍照怎么显示时间(华为mate20拍照怎么拍出单反相机的感觉)

  • 文件如何按照序号排序(文件如何按照序号重命名)

    文件如何按照序号排序(文件如何按照序号重命名)

  • 6.53英寸屏幕长宽多少(6.5英寸屏幕多长)

    6.53英寸屏幕长宽多少(6.5英寸屏幕多长)

  • python大小写转换(python大小写转换输出转换后的字符串)

    python大小写转换(python大小写转换输出转换后的字符串)

  • qq打字出表情怎么关闭(qq输字出表情)

    qq打字出表情怎么关闭(qq输字出表情)

  • vivoy93有指纹吗(vivo y93有指纹吗)

    vivoy93有指纹吗(vivo y93有指纹吗)

  • OS X Yosemite怎么样 OS X Yosemite上手体验评测(osXYosemite怎么更新)

    OS X Yosemite怎么样 OS X Yosemite上手体验评测(osXYosemite怎么更新)

  • 授予渔,从0开始搭建一个自己想要的网页(授渔计划是什么意思)

    授予渔,从0开始搭建一个自己想要的网页(授渔计划是什么意思)

  • 电子缴款凭证和完税证明都可以做原始凭证吗
  • 增值税专用发票使用规定 最新
  • 城市维护建设税是什么意思
  • 无票收入在增值税申报表的哪里填
  • 企业返聘退休人员劳务合同
  • 卫生清理费计入什么科目
  • 电子发票丢失如何税前扣除
  • 捐赠利得会计分录
  • 公司自建厂房需要缴纳哪些税
  • 销货清单怎么写才正规
  • 增值税税收返还政策
  • 以前年度少计提折旧怎么做分录
  • 汇票本票的区别
  • 发放外单位人员奖金 个人所得税
  • 购入无形资产产生的咨询费
  • 收到购货单位货款属于什么会计科目
  • 小规模纳税人需要交哪些税
  • 免税单位取得增值税发票
  • 个税手续费返还计入哪个科目
  • 建筑企业包工包料
  • 个人取得的拍卖资格
  • 1697509246
  • 拆迁安置房如何更名
  • 增值税步骤
  • php oci8
  • 公司取得的营业收入
  • linux virt-manager
  • 代办退税账务处理
  • php开启pdo
  • arcgis图案填充
  • 税务的基本职能
  • 前端使用vue
  • elements vue
  • 穹顶高度
  • vue3使用ref获取元素
  • php实现的功能
  • 出口抵扣进项的设备免税依据
  • 折扣方式销售有哪些类型
  • 残疾人就业保障金
  • 民办学校学费收入
  • 小规模纳税人要缴纳哪些税
  • 小规模开票软件怎么升级
  • 建筑公司遇到的问题
  • 织梦技术论坛
  • python调试器是什么
  • 供货商少开发票金额如何进行会计处理?
  • 医院交什么保险
  • 减免增值税记账
  • 资产总额是指营业收入和营业支出吗
  • 个税返还手续费政策
  • 应付职工薪酬的二级科目都有哪些
  • 为什么说运输是实现物流合理化的关键
  • 审计报告的分类不包含
  • 贴现利息的计算公式为
  • 零余额账户收到国税局退款
  • 收到招聘费发票怎么做账
  • 差旅费算人工费吗
  • 增值税留抵退税最新政策
  • 哪些减值准备一经计提不得转回
  • 事业单位打款多久到账
  • 向个人借款在现场怎么写
  • win10 rs5
  • win8系统开机直接进入桌面
  • centos安装后配置
  • windows 8.1 build 9600
  • 怎么添加第二个人脸识别
  • centos停止程序
  • 怎么解决xp不能安装软件
  • mblme是什么进程
  • 360安全卫士检测出来高危漏洞需要修复吗
  • css弹出层
  • js中的三种弹出式消息提醒的命令是什么
  • unitystudio手机版
  • js复制数组的方法
  • 运用javascript制作网页
  • javascript基础入门教程
  • jquery使用css
  • android源码分析
  • centos6.9查看网卡状态
  • unity3d导出工程文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设