利用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中巧用“闭包”实现程序的暂停执行功能
Apr 04 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
Apr 09 Javascript
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
理解JavaScript中Promise的使用
Jan 18 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
Oct 19 Javascript
jQuery实现对象转为url参数的方法
Jan 11 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
javascript实现电商放大镜效果
Nov 23 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
动易数据转成dedecms的php程序
2007/04/07 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
深入解析Python中函数的参数与作用域
2016/03/20 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
python中dict()的高级用法实现
2019/11/13 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
详解python的super()的作用和原理
2020/10/29 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
如何理解transaction事务的概念
2015/05/27 面试题
自荐信的五个重要部分
2013/10/29 职场文书
专业销售业务员求职信
2013/11/18 职场文书
农村改厕实施方案
2014/03/22 职场文书
《画风》教学反思
2014/04/16 职场文书