利用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 相关文章推荐
在浏览器中打开或关闭JavaScript的方法
Jun 03 Javascript
javascript排序函数实现数字排序
Jun 26 Javascript
常用的Javascript数据验证插件
Aug 04 Javascript
论JavaScript模块化编程
Mar 07 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
Sep 24 Javascript
bootstrap网格系统使用方法解析
Jan 13 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
Aug 19 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
JavaScript实现打字游戏
Feb 19 Javascript
详解Js模块化的作用原理和方案
Apr 29 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
一个改进的UBB类
2006/10/09 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
treepanel动态加载数据实现代码
2012/12/15 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
python虚拟环境virualenv的安装与使用
2016/12/18 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
大学本科毕业生求职信范文
2013/12/18 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
庆七一宣传标语
2014/10/08 职场文书
股份转让协议书范本
2015/01/27 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
2016年元旦主持词
2015/07/06 职场文书
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
MySQL分区路径子分区再分区
2022/04/13 MySQL
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js