利用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 相关文章推荐
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
Dec 24 Javascript
js 数据类型转换总结笔记
Jan 17 Javascript
JS定时器实例详细分析
Oct 11 Javascript
javascript动态获取登录时间和在线时长
Feb 25 Javascript
超全面的javascript中变量命名规则
Feb 09 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
Jan 07 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
vue如何安装使用Quill富文本编辑器
Sep 21 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
React实现todolist功能
Dec 28 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
自定义session存储机制避免会话保持问题
2014/10/08 PHP
php字符串截取函数用法分析
2014/11/25 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
页面中js执行顺序
2009/11/09 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
python笔记(2)
2012/10/24 Python
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
python制作最美应用的爬虫
2015/10/28 Python
python实现发送邮件及附件功能
2021/03/02 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
python实现五子棋小游戏
2020/03/25 Python
python binascii 进制转换实例
2019/06/12 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
优秀会计求职信
2014/07/04 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python