v-if和v-for的优先级
来源:     阅读:385
依创模板店
发布于 2020-11-08 03:37
查看主页

使用vue-template-complier

  1. 首先我们运行下面一段代码
let compiler = require('vue-template-compiler');const ast = compiler.compile('<div v-if="true" v-for="i in 3"></div>');console.log(ast.render)

2.控制台打印:

with(this){return _l((3),function(i){return (true)?_c('div'):_e()})}

3.解释:
_l()表示要渲染一个列表,这个列表要渲染三项,每次渲染的时候都会执行方法:function(i){return (true)?_c('div'):_e()},该方法内部会判断能否为true,true则会渲染div,否则为空。

4.总结:
v-for优先级高于v-if

5.处理办法:
那么遇到上面的情况,我们如何处理呢?只要要用template模板标签套一层就可,如下所示:

let compiler = require('vue-template-compiler');const ast = compiler.compile('<template v-if="true"><div v-for="i in 3"></div></template>');console.log(ast.render)

6.控制台打印

with(this){return (true)?_l((3),function(i){return _c('div')}):_e()}
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 windows
相关推荐
web后台简单探究MyBatis少量步骤,接下来会发小案例
《编程珠玑》第一章
iOS developer的良好习惯
Spring Cloud Alibaba 实战(十三) -  Sleuth调用链监控
CSS+SVG路径描边特效
首页
搜索
订单
购物车
我的