利用vue.js插入dom节点的方法


Posted in Javascript onMarch 15, 2017

本文主要介绍的是vue.js插入dom节点的方法,下面话不多说,来看看详细的介绍吧。

html代码:

<div id="app"></div>

js代码:

var MyComponent = Vue.extend({
 template: '<div>Hello World</div>'
})
var myAppendTo = Vue.extend({
template:'<p>appendTo</p>'
})
var myBefore = Vue.extend({
 template:'<p>before</p>'
})
var myAfter = Vue.extend({
 template:'<p>after</p>'
})
// 创建并挂载到 #app (会替换 #app)
new MyComponent().$mount('#app');

// 手动挂载
new myAppendTo().$mount().$appendTo('#app');//appendTo
new myBefore().$mount().$before('#app');//before
new myAfter().$mount().$after('#app');//after

说明:

      1.对比jquery的dom节点的插入方式,vue.js的插值需要使用先new创建一个实例然后通过$mount()

      2.手动挂载到dom节点中,然后使用$appendTo/$before/$after等方法进行插值。

      3.这种操作dom的思想其实并不是vue提倡的方式,而vue提倡的方式是通过操作数据来完成你想要的结果。

      4.vue的思想是这个dom已经存在,通过判断可以控制它显示隐藏。

      5.所以使用vue的时候,要试着转变一下使用jquery的时候那种思想就像api提供的这种方法 (v-if)。

<ul>
 <li v-if="ok">显示</li>
 <li v-else>隐藏</li>
</ul>

也可以通过(v-show)来控制显示隐藏:

<ul>
 <li v-show="ok">显示</li>
</ul>

那么v-if和v-show的区别:

在切换 v-if 块时,Vue.js 有一个局部编译/卸载过程,因为 v-if 之中的模板也可能包括数据绑定或子组件。

v-if 是真实的条件渲染,因为它会确保条件块在切换当中合适地销毁与重建条件块内的事件监听器和子组件。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——在条件第一次变为真时才开始局部编译(编译会被缓存起来)。

相比之下,v-show 简单得多——元素始终被编译并保留,只是简单地基于 CSS 切换。

一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,
如果在运行时条件不大可能改变 v-if 较好。

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
用JQuery 实现AJAX加载XML并解析的脚本
Jul 25 Javascript
JQuery Dialog的内存泄露问题解决方法
Jun 18 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
document.addEventListener使用介绍
Mar 07 Javascript
javascript中Array()数组函数详解
Aug 23 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
Dec 17 Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 Javascript
JS 实现计算器详解及实例代码(一)
Jan 08 Javascript
js省市区级联查询(插件版&amp;无插件版)
Mar 21 Javascript
vue.js学习之vue-cli定制脚手架详解
Jul 02 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
Oct 30 Javascript
js实现彩色条纹滚动条效果
Mar 15 #Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 #Javascript
jQuery阻止移动端遮罩层后页面滚动
Mar 15 #Javascript
字太多用...代替的方法(两种)
Mar 15 #Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 #Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 #Javascript
js仿淘宝商品放大预览功能
Mar 15 #Javascript
You might like
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
PHP高级OOP技术演示
2009/08/27 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
Joomla开启SEF的方法
2016/05/04 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python之re操作方法(详解)
2017/06/14 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
浅谈python之新式类
2018/08/12 Python
python pygame实现2048游戏
2018/11/20 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
债务授权委托书范本
2014/10/17 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android