好网站123,网站建设网站建设 网站制作,学校网站搭建,品牌建设之道有哪些v-if
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。 templatediv classcontentdiv v-ifshowshow渲染了/div/div
/templatescript
export de…v-if
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。 templatediv classcontentdiv v-ifshowshow渲染了/div/div
/templatescript
export default {data() {return {show: true}},
}
/scriptstyle scoped/style 也可以使用v-else 添加else块 div v-ifshowshow渲染了/div
div v-elseshow不渲染了/div 在 template 元素上使用 v-if 条件渲染分组
因为 v-if 是一个指令所以必须将它添加到一个元素上。但是如果想切换多个元素呢此时可以把一个 template 元素当做不可见的包裹元素并在上面使用 v-if。最终的渲染结果将不包含 template 元素。
template v-ifokh1Title/h1pParagraph 1/ppParagraph 2/p
/template
v-else
你可以使用 v-else 指令来表示 v-if 的“else 块”
div v-ifMath.random() 0.5Now you see me
/div
div v-elseNow you dont
/div
v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面否则它将不会被识别。
v-else-if
v-else-if顾名思义充当 v-if 的“else-if 块”可以连续使用
div v-iftype AA
/div
div v-else-iftype BB
/div
div v-else-iftype CC
/div
div v-elseNot A/B/C
/div
类似于 v-elsev-else-if 也必须紧跟在带 v-if 或者 v-else-if 的元素之后。
用 key 管理可复用的元素
Vue 会尽可能高效地渲染元素通常会复用已有元素而不是从头开始渲染。这么做除了使 Vue 变得非常快之外还有其它一些好处。例如如果你允许用户在不同的登录方式之间切换
template v-ifloginType usernamelabelUsername/labelinput placeholderEnter your username
/template
template v-elselabelEmail/labelinput placeholderEnter your email address
/template
那么在上面的代码中切换 loginType 将不会清除用户已经输入的内容。因为两个模板使用了相同的元素input 不会被替换掉——仅仅是替换了它的 placeholder。
这样也不总是符合实际需求所以 Vue 为你提供了一种方式来表达“这两个元素是完全独立的不要复用它们”。只需添加一个具有唯一值的 key attribute 即可
template v-ifloginType usernamelabelUsername/labelinput placeholderEnter your username keyusername-input
/template
template v-elselabelEmail/labelinput placeholderEnter your email address keyemail-input
/template
现在每次切换时输入框都将被重新渲染
注意label 元素仍然会被高效地复用因为它们没有添加 key attribute。
v-show
另一个用于根据条件展示元素的选项是 v-show 指令。用法大致一样
h1 v-showokHello!/h1
不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display。
注意v-show 不支持 template 元素也不支持 v-else。
v-if跟v-show
不推荐同时使用 v-if 和 v-for。请查阅去vue官网查看风格指南以获取更多信息。
当 v-if 与 v-for 一起使用时v-for 具有比 v-if 更高的优先级。请查阅列表渲染指南以获取详细信息。
后续会持续更新...