问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Vue的监视属性和条件渲染,你还了解他们的区别吗?

发布网友 发布时间:2024-09-17 05:35

我来回答

1个回答

热心网友 时间:2024-09-29 06:36

今天我们可以复习到Vue的监视属性和条件渲染

监视属性watch

当被监视的属性变化时,回调函数自动调用,进行相关操作

监视的属性必须存在,才能进行监视

监视的两种写法:

newVue时传入watch配置

通过vm.$watch监视

constvm=newVue({el:'#root',data:{isHot:true,}computed:{}methods:{}watch:{isHot:{immedate:true,//作用:初始化时让handler调用默认为false//handler当isHot发生改变时会被调用handler(newValue,oldValue){console.log('isHot被修改了',newValue,oldValue)}}}})深度监视

Vue中的watch默认不检测对象内部值的改变(一层)

配置deep:true可以检测对象内部值的改变(多层)

备注:

Vue自身可以检测对象内部值的改变,但Vue提供的watch默认不可以!

使用watch时根据数据的具体结构,决定是否采用深度监视

computed和watch之间的区别:

computed能完成的功能,watch都能完成

watch能完成的功能,computed不一定能完成例如watch可以进行异步操作

两个原则:

所有Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象

所有不被Vue所管理的函数(定时器的回调函数、ajax的回调函数等、Promice的回调函数),最好写成箭头函数,这样this的指向才是vm或组件实例对象

条件渲染

使用v-show做条件渲染

<h2v-show="false">欢迎来到{{name}}</h2><h2v-show="1===1">欢迎来到{{name}}</h2>

使用v-if做条件渲染

<h2v-if="false">欢迎来到{{name}}</h2><h2v-if="1===1">欢迎来到{{name}}</h2>

v-else和v-else-if

<divv-if="n===1">Angular</div><divv-else-if="n===2">React</div><divv-else-if="n===3">Vue</div><divv-else>11111</div>条件渲染小结

v-if

写法:v-if="表达式"?、v-else-if="表达式"、v-else="表达式"

适用于:切换频率较低的场景

特点:不展示的DOM元素直接被移除

注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被打断

2.v-show

写法:v-show=”表达式“

适用于:切换频率较高的场景

特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

备注:

使用v-if时,元素可能无法获取到,而使用v-show一定可以获取到

原文:https://juejin.cn/post/7101878796080381989

热心网友 时间:2024-09-29 06:36

今天我们可以复习到Vue的监视属性和条件渲染

监视属性watch

当被监视的属性变化时,回调函数自动调用,进行相关操作

监视的属性必须存在,才能进行监视

监视的两种写法:

newVue时传入watch配置

通过vm.$watch监视

constvm=newVue({el:'#root',data:{isHot:true,}computed:{}methods:{}watch:{isHot:{immedate:true,//作用:初始化时让handler调用默认为false//handler当isHot发生改变时会被调用handler(newValue,oldValue){console.log('isHot被修改了',newValue,oldValue)}}}})深度监视

Vue中的watch默认不检测对象内部值的改变(一层)

配置deep:true可以检测对象内部值的改变(多层)

备注:

Vue自身可以检测对象内部值的改变,但Vue提供的watch默认不可以!

使用watch时根据数据的具体结构,决定是否采用深度监视

computed和watch之间的区别:

computed能完成的功能,watch都能完成

watch能完成的功能,computed不一定能完成例如watch可以进行异步操作

两个原则:

所有Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象

所有不被Vue所管理的函数(定时器的回调函数、ajax的回调函数等、Promice的回调函数),最好写成箭头函数,这样this的指向才是vm或组件实例对象

条件渲染

使用v-show做条件渲染

<h2v-show="false">欢迎来到{{name}}</h2><h2v-show="1===1">欢迎来到{{name}}</h2>

使用v-if做条件渲染

<h2v-if="false">欢迎来到{{name}}</h2><h2v-if="1===1">欢迎来到{{name}}</h2>

v-else和v-else-if

<divv-if="n===1">Angular</div><divv-else-if="n===2">React</div><divv-else-if="n===3">Vue</div><divv-else>11111</div>条件渲染小结

v-if

写法:v-if="表达式"?、v-else-if="表达式"、v-else="表达式"

适用于:切换频率较低的场景

特点:不展示的DOM元素直接被移除

注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被打断

2.v-show

写法:v-show=”表达式“

适用于:切换频率较高的场景

特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

备注:

使用v-if时,元素可能无法获取到,而使用v-show一定可以获取到

原文:https://juejin.cn/post/7101878796080381989
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕错过了糖筛怎么办 糖筛有哪些注意事项 怀孕几个月查唐筛 蔡家沟镇慈云寺 哈佳高铁高楞站多少平方米位置在那 超威电池生产日期怎么看 超威电池寿命一般多长时间 华晨宇鸟巢四面台10w+秒罄!!火星演唱会舞台概念图震撼发布! 手机连接160wifi电脑蓝屏使用160WiFi遇到问题应该如何解决 为什么手机wifi总是刚开启,锁屏就掉了。wifi设置里的休眠模式也是永久的... 建行卡为什么不能网上转账 学校发我们的建设银行卡一定要激活吗? 我打电话查余额说输入取钱密码... 两岁宝宝手心脚心发热怎么回事 一岁半宝宝手心热怎么回事 layui图书借阅模板(图书借阅记录表怎样设计) JavaScript中如何写,当点击某标签时背景颜色变红,离开时背景颜色取消... div背景随即变色 JS 亲们。 怎么样用JS把DIV里面的背景颜色不停的切换颜色? 可以加我QQ... 澳大利亚国立大学的解释 php中json_decode()和json_encode()的使用方法 什么是淘宝最低价和到手价? 青少年李白:反感科举愁死亲爹 家访的道士奠定他一生轨迹 旧唐书李白传的原文 php问题 "print()能作为表达式的一部分,echo()不能" 这个说法是什么意思... 目前最好的磷酸二氢钾 金毛犬的7大缺点 拍摄时相机参数要调成多少 数码相机如何使用? 如何使用数码相机? 北京传统文化之四合院 三鲜菌菇汤的做法大全 为什么我的右眼看远和近的东西都不清楚?是远视吗?还是属于其他的问题... 菌菇汤之鲜香菇肉片汤 hdgraphics4600核芯显卡好吗 DS游戏配置 宝宝半岁戒奶好不好 卢丹氏近两年的作品,真的一言难尽!打开中国市场以后就开始恰烂钱?_百... 弹出层layer.open({content:'推荐 6 条内容',}),6怎么改成随机数... jquery判断复选框是否选中,alert($("#id").attr("checked")),只有选... checked示例 jquery 判断是否选中用is(":checked")这里为什么用:checked,这个冒号是... js判断复选框是否选中复选框? Python中使用符号'#'表示单行注释 ...一个被选中时,立即触发一个效果,用js或者jquery应该如何实现_百度... python注释符号是什 我在别人的群被封了!对自己的微信号!有什么影响吗? 微信群违规有什么阶段吗? html写网页,&lt;link rel="stylesheet" href="/inc/login.css" type=... html问题。link rel="stylesheet" href="mm_travel2.css" type="text/... 比心是什么平台? php 我选中了该复选框,复选框name=id[],怎么获得这一行的商品id php数组 与 复选框的问题 html中在后台用什么方法获得前台 checkbox 的值,判断是否被选中