利用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 相关文章推荐
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
JavaScript输入邮箱自动提示实例代码
Jan 13 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
vue form 表单提交后刷新页面的方法
Sep 04 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
react+redux仿微信聊天界面
Jun 21 Javascript
Webpack 4如何动态切割JS注入文件名详解
Jul 09 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 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
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
JavaScript实现星级评价效果
2019/05/17 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
python+opencv实现车道线检测
2021/02/19 Python
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
大专学生求职自荐信
2014/07/06 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
推广普通话主题班会
2015/08/17 职场文书
2015年圣诞节寄语
2015/08/17 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书