位置: 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使用)

  • iqoo8pro传奇版后盖材质(iqoo8pro传奇版后盖脏了怎么办)

    iqoo8pro传奇版后盖材质(iqoo8pro传奇版后盖脏了怎么办)

  • 华为耳机怎么连接ipad(华为耳机怎么连接苹果ipad)

    华为耳机怎么连接ipad(华为耳机怎么连接苹果ipad)

  • vivox70pro刷新率怎么调(vivox70pro刷新率多少Hz)

    vivox70pro刷新率怎么调(vivox70pro刷新率多少Hz)

  • 荣耀x10如何设置息屏显示时间(荣耀x10如何设置双系统)

    荣耀x10如何设置息屏显示时间(荣耀x10如何设置双系统)

  • 华为mate20pro尺寸(华为mate20pro尺寸多少寸)

    华为mate20pro尺寸(华为mate20pro尺寸多少寸)

  • 抖音点关注显示已请求(抖音点关注显示网络错误是什么意思)

    抖音点关注显示已请求(抖音点关注显示网络错误是什么意思)

  • 共享单车怎么用怎么归还(青桔共享单车怎么用)

    共享单车怎么用怎么归还(青桔共享单车怎么用)

  • 打印机打印出来的纸有一条黑道怎么解决(打印机打印出来的纸黑乎乎的)

    打印机打印出来的纸有一条黑道怎么解决(打印机打印出来的纸黑乎乎的)

  • 正在注销关不了机怎么回事(正在注销很久)

    正在注销关不了机怎么回事(正在注销很久)

  • 抖音卸载后重新安装登录后有什么影响(抖音卸载后重新下载草稿为什么都没了)

    抖音卸载后重新安装登录后有什么影响(抖音卸载后重新下载草稿为什么都没了)

  • 苹果电脑一直转圈圈(苹果电脑一直转圈怎么办)

    苹果电脑一直转圈圈(苹果电脑一直转圈怎么办)

  • 小米8屏幕下面有个方块阴影(小米8屏幕下面的横条怎么消除)

    小米8屏幕下面有个方块阴影(小米8屏幕下面的横条怎么消除)

  • 星标朋友有什么特殊含义(星标朋友有什么特殊提示音)

    星标朋友有什么特殊含义(星标朋友有什么特殊提示音)

  • 银河奇异果是不是爱奇艺(银河奇异果是不是爱奇艺会员)

    银河奇异果是不是爱奇艺(银河奇异果是不是爱奇艺会员)

  • 7p和8p电池容量一样吗(7p和8p电池容量对比)

    7p和8p电池容量一样吗(7p和8p电池容量对比)

  • 美团会员红包城市限制吗(美团会员红包在哪里兑换)

    美团会员红包城市限制吗(美团会员红包在哪里兑换)

  • 算法时代是什么意思(算法时代是什么时候开始的)

    算法时代是什么意思(算法时代是什么时候开始的)

  • 拼多多场景推广啥意思(拼多多场景推广是什么意思)

    拼多多场景推广啥意思(拼多多场景推广是什么意思)

  • 黑鲨有没有小爱同学(黑鲨有小爱吗?)

    黑鲨有没有小爱同学(黑鲨有小爱吗?)

  • 深蓝的近义词(深蓝的近义词模糊的近义词)

    深蓝的近义词(深蓝的近义词模糊的近义词)

  • qc3.0快充24w还是18w(qc3.0快充与2.4a)

    qc3.0快充24w还是18w(qc3.0快充与2.4a)

  • 手机ip地址由什么决定(手机ip地址是干什么用的)

    手机ip地址由什么决定(手机ip地址是干什么用的)

  • 手机qq视频通话怎么录屏

    手机qq视频通话怎么录屏

  • 拼多多极速退款在哪里看(拼多多极速退款商家申诉能追回钱来吗)

    拼多多极速退款在哪里看(拼多多极速退款商家申诉能追回钱来吗)

  • 华为手机上出现hd怎么关(华为手机上出现了一个圆圈怎么关闭)

    华为手机上出现hd怎么关(华为手机上出现了一个圆圈怎么关闭)

  • 快启动怎么安装xp系统 快启动U盘装xp系统图文教程(快启动u盘装系统教程)

    快启动怎么安装xp系统 快启动U盘装xp系统图文教程(快启动u盘装系统教程)

  • 我用尽了洪荒之力,解开了ChatGPT 写前端代码的封印,结果...(我已经用尽了洪荒之力漫画表情)

    我用尽了洪荒之力,解开了ChatGPT 写前端代码的封印,结果...(我已经用尽了洪荒之力漫画表情)

  • 工商年报已报网上还查不出来
  • 应收账款资金占用费公式
  • 公司没有收入怎么报销
  • 出口赠送客户怎么处理
  • 网银盾属于什么费用
  • 建筑企业外地预缴
  • 已交的增值税能计入费用吗
  • 应收账款坏账损失专项报告
  • 培训学校预收学费要交税吗
  • 企业收回报废产品合法吗
  • 福利费不交个人所得税会怎么样
  • 别墅送停车位吗
  • 收到其他公司的捐赠收入怎么处理
  • 高新技术企业研发人员学历要求
  • 1697510006
  • 农业合作社收到政府补贴做到其他收入里可以吗
  • 法院收到诉讼费多久可以收到传票
  • 如何做无票收入的会计分录
  • 加工费计入成本怎么计算所得税
  • 发票差额怎样做分录
  • php实现查询功能
  • 复制粘贴如何提取文字
  • 你知道约定的公司有哪些
  • 子公司增发股票母公司为什么会产生利得
  • php最好的编程语言
  • 结算劳务外包的工作内容
  • 怎么用html做一个收藏夹
  • 应付票据抵付应付账款会计分录
  • php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
  • torch.nn.Conv3d
  • spring5和6差别大吗
  • python二叉树遍历算法
  • 离职补偿金可以拖欠么
  • 投标保证金退还时间是在什么文件的规定的
  • 个人工程款收入算是工资流水吗
  • 浏览器打开域名怎么设置
  • 企业付给个人工资怎么算
  • 报销有专票和普票,怎么出分录
  • 现代服务税目包括哪些具体分类
  • 转让土地如何做会计分录
  • 工资发放凭证原件指什么意思
  • 营改增有关事项的规定
  • 定期定额户用财务制度备案吗
  • 转出多交增值税账务处理
  • 个人劳务报酬所得税税率表
  • 免征增值税所得税在申报表中咋填
  • 双分录怎么做记账凭证
  • 什么是明细分类帐
  • 建行E信通贴现需要发票吗
  • 社保应该如何缴纳
  • 如何提取十位数
  • 事业单位结余是什么意思
  • 开发成本存货怎么算
  • 当月费用次月报销
  • 外包加工如何做账
  • 以前年度长期股权投资漏记调整
  • 业务招待费可以结转下年抵扣吗
  • 转账支票需要知道开户行吗
  • 投资收益期末余额在借方还是贷方
  • 劳务派遣证验资
  • 收到保险公司保险费会计分录
  • 可转债公允价值变动计入
  • 财务费用的科目编码是多少
  • 工商注册资本什么意思
  • freebsd11.3安装教程
  • win1021h2正式版发布日期
  • win7系统玩红色警戒怎么全屏设置
  • win1021h2版本怎么样
  • vmware怎么配置网络
  • 批处理 输入密码
  • css截图
  • javascript基础笔记
  • 第二章,动态添加按钮(Android)
  • 税务局与稽查局哪个好
  • 网上交购置税怎么拿完税证明
  • 增值税征税范围口诀
  • 北京公积金缴纳最低基数
  • 衡水市地税局
  • 西藏五个确保是什么?
  • 区地税局会不会分到乡镇
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设