为了账号安全,请及时绑定邮箱和手机立即绑定

基于条件的VueJS HTML元素类型

基于条件的VueJS HTML元素类型

蛊毒传说 2021-05-31 10:47:39
在 Vue JS 中,我可以做到<h1 v-if="someCondition">MY TITLE</h1>有没有办法将元素类型基于某种条件?例如,基于someCondition我希望我的标题是<h1>or <h2>。我想我可以用<template v-if="someCondition === 0">  <h1>MY TITLE</h1></template><template v-if="someCondition === 1">  <h2>MY TITLE</h2></template>但是有没有更直接的写法?
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

<component :is="'h'+someCondition">MY TITLE</component>

您的“someCondition”可以定义为 props 或 data 属性,它的值可以从 1 到 6,以防您只使用“H 标签”


查看完整回答
反对 回复 2021-06-03
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这就是render函数有用的地方。每当您的模板需要更高级的逻辑时,渲染函数都会使用 Javascript 及其所有逻辑流能力来生成模板,而不是 HTML 标签。您可以在此处阅读有关Vue 渲染函数的更多信息。


这是演示此示例的小提琴


data() {

  return {

    someCondition: 1

  }

},

render(h){

  let tagType;

  if (this.someCondition === 0) {

    tagType = 'h1';

  } else if(this.someCondition === 1) {

    tagType = 'h2';

  }

  return h(tagType, null, 'MY TITLE');

}


查看完整回答
反对 回复 2021-06-03
  • 3 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信