初学Vue.js--数据绑定与文本插值
(一)数据双向绑定
数据的双向绑定是Vue.js的核心功能在上一篇记录中已经简单创建了一个Vue实例如下
var myVue=new Vue({
el:'#myvue'//myvue是已经存在的div,其id值为myvue
})
使用选项el挂载成功后,我们可以通过myVue.$el来访问该元素,如果需要在此div内绑定数据,就要用到Vue实例的另外一个选项data,data选项可以声明应用内需要双向绑定的数据,建议所有会用到的数据都预先再data内声明这样不至于将数据散落在业务逻辑中,难以维护。
Vue实例本身也代理了data对象里所有的属性可以这样进行访问:
var myVue=new Vue({
el:'#myvue',
data:{
num:3
}
})
console.log(myVue.num);//3
除了显式声明数据外,也可以纸箱一个已有的变量,并且他们之间默认建立了双向绑定,当修改其中任意一个是,另一个也会一起变化比如:
var myData={
num:2
}
var myVue=new Vue({
el:'#myvue',
data:myData
})
console.log(myVue.num)//2
myVue.num=1//修改属性原数据也会变
console.log(myData.num)//1
myData.num=3//修改原数据属性也会变
console.log(myVue.num)//3
(二)文本插值
(1)
使用双大括号{{}}是最基本的文本插值的方法,他会自动将我们双向绑定的数据实时显示出来,微信小程序也是通过此方法进行的数据绑定显示在前端页面上,下面为一个简单的文本插值
<div id='myvue'>
当前时间为{{ date }}
</div>
<script src='XXX'></script> //引用下载好的Vue.js此路径为文件的相对路径,此后所有引用相同
<script>
var myVue=new Vue({
el:'#myvue',
data:{
date:new Date()
}
})
</script>
这样就可以在页面实现显示‘当前时间为+页面加载出来的时间’
(2)
此时我们让他每秒更新一下,思路就是用setInterval()定时器每隔1000毫秒进行一次new Date(),然后把new Date()的值赋给data属性里的date.就可以实时更新变换,但是这时候我们就要思考Vue.js的生命周期了,因为每个vue实例创建时都会经过一系列的初始化过程,同时也会调用相应的生命周期钩子,我们可以利用这些钩子,在合适的时候执行我们的业务逻辑。就像jQuery中的ready()方法一样Vue的生命周期钩子与之类似,比较常用得有:
creatd(创建):实例创建完成后调用,此阶段完成了数据的观测等,但尚未挂载,$el还不能用,需要初始化处理一些数据时会比较有用;
mounted(挂载):el挂载到实例上后调用,一般我们的第一个业务逻辑会从这里开始;
beforeDestroy(销毁之前):实例销毁之前调用,主要解绑一些使用addEventerListener 监听的事件等
这些钩子与el data类似是被作为选项写入Vue实例内的,并且这些钩子也就是方法内的this指的是调用这些方法的实例本身比如
<div id='myvue'></div>
<script src='XXX'></script>
<script>
var myVue=new Vue({
el:'#myvue',
data:{
num:1
},
created:function(){
console.log(this.num)//1
console.log(this.$el)//undefined(由于此时还未挂载)
},
mounted:function(){
console.log(this.num)//1
console.log(this.$el)//<div id='myvue'></div>
}
})
</script>
最后了解到生命周期后我们就可以编辑我们的业务逻辑了,我们要把我们的处理的业务逻辑写在mounted里如下
修改为
<div id='myvue'>
当前时间为{{ date }} //注意要有空格呀
</div>
<script src='XXX'></script>
<script>
var myVue=new Vue(){
el:'#myvue',
data:{
date:new Date()
},
mounted:function(){
var _this=this; //声明一个变量指向本实例
this.timer=setInterval(function(){ //这个this和_this代表的都是本实例
_this.date=new Date(); //因为需要用到的对象是实例所以用_this,如果直接写this的指的是setInterval方法
},1000)
},
beforeDestroy:function(){
if(this.timer){
clearInterval(this.timer); //在实例销毁前清除定时器
}
}
}
</script>
这样我们完成了一个在页面上实时变化的时间
转载于:https://www.cnblogs.com/gulugulul/p/11201723.html
初学Vue.js--数据绑定与文本插值相关推荐
- 初学VUE.js之数据绑定
Vue中有2种数据绑定的方式: 1.单向绑定(v-bind):数据只能从data流向页面. 2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data. 备注: 1.双向绑 ...
- 初学Vue.js,从头来过~
之前上课也学过vue.js,但是一遍过下来,实话,没有记住什么,所以决定自己在对照着文档过一遍,所以之后会弄一些基础的东西,还请大神们莫喷~~~~今天先给平台打一个预防针,Young C 要来啦~~ ...
- Vue.js 数据绑定渲染Demo
微信小程序开发交流qq群 581478349 承接微信小程序开发.扫码加微信. <div id="app">{{ message }} </div> ...
- Vue的常用指令(v-html {{}}文本插值,v-bind绑定属性,v-if条件渲染,v-for列表渲染,v-on @ 事件绑定,v-model表单绑定)
Vue的常用指令(文本插值,绑定属性,条件渲染,列表渲染,事件绑定,表单绑定) Vue 的介绍 Vue 是一套构建用户界面的渐进式前端框架. 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已 ...
- Vue.js高效前端开发 • 【初识Vue.js】
全部章节 >>>> 文章目录 一.Vue概述 1.Web前端框架介绍 2.MVC和MVVM 3.Vue介绍 4.安装Vue 二.Vue使用 1.第一个Vue应用 2.Vue的双 ...
- Vuebnb:一个用vue.js和Laravel构建的全栈应用
2019独角兽企业重金招聘Python工程师标准>>> 今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel.它会在Packt出版社在2018年初出版. ...
- Prettier 1.15代码格式化工具新增Angular和Vue.js支持
Prettier 1.15代码格式化工具新增HTML.Vue.js.Angular.MDX支持以及多项语法优化和改进. 对于Angular和Vue,Prettier现在可以格式化这些扩展HTML的框架 ...
- Vue.js项目新建及目录结构分析
初学vue.js ,如有错误,请多多指教. hiahai~~ 进入正题! 首先新建一个工程吧! 安装好vue环境之后,找一个你顺眼的文件夹 ~~ 嘻嘻嘻嘻 ~~ 作为你的vue的work ...
- 火速拿来用!对比 12,000 个 Vue.js 开源项目发现最实用的 TOP45!
在过去一年里,前端开发发展迅速,前端工程师的薪资亦是水涨船高.2019 更是热度不减,而作为近年来尤为热门的前端框架,Vue.js 自是积累了大量关注.本文将为你介绍 2019 年最值得关注的 45 ...
- 推送近期三波关于Vue.js的资讯
原文来自:集web前端最近很火的vue2框架资源:定时更新,欢迎Star一下. 推送自己整理近期三波关于Vue.js的资讯: 这里就抛砖引玉了,望有更屌的资源送助攻. 第一波 vue-js-toggl ...
最新文章
- 解决chrome extension无法下载的问题
- hdu 1688 Sightseeing
- PHP解决方案@时间戳与时间日期
- vue学习:vue中data和return data的区别
- 银行界加强计算机病毒管理,银行计算机管理系统维护现状与对策研究(7.12).doc...
- 华为推出业界首个分布式云原生产品:华为云UCS,持续创新,深耕数字化
- html定义不同的类,定义不同的节点类型.html
- [bzoj5158][Tjoi2014]Alice and Bob
- 01.J2EE开发环境搭建
- java 记账系统_案例分享用java开发实现一个记账系统(代码全)
- 大华条码秤数据同步发送数据格式
- JAVA-计算两篇文章的相似度
- 计算机安全泄露,哪些原因导致计算机信息泄露
- 商业智能BI推动制造业智能化转型
- TEXT部分文字颜色的改变
- 滚珠螺杆螺母的安装教程来了
- 【数字电路基础】时序电路和组合电路的区别、为什么要有触发器
- 传说中的移动员工工资表,也不知是真是假
- 【用复制粘贴让脚本动起来(二)】根据画面点击特定坐标
- Vue源码学习之Computed与Watcher原理
热门文章
- 全国计算机等级考试题库二级C操作题100套(第68套)
- linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
- c语言link错误什么原因,C语言 OpenCV错误:“LINK:致命错误LNK1104:无法打开文件’opencv_core231d.lib’”...
- python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...
- linux权限sudo和su,Linux su和sudo命令的区别,并获得root权限
- matlab msgbox 换行,[转载]Matlab/GUI笔记
- 45道CSS基础面试题
- Mysql数据库正则表达式
- 不要重新发明轮子_是否重新发明轮子
- 如何使用 Node 后端创建 React 应用程序:完整指南