(一)数据双向绑定

数据的双向绑定是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--数据绑定与文本插值相关推荐

  1. 初学VUE.js之数据绑定

    Vue中有2种数据绑定的方式: 1.单向绑定(v-bind):数据只能从data流向页面. 2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data. 备注: 1.双向绑 ...

  2. 初学Vue.js,从头来过~

    之前上课也学过vue.js,但是一遍过下来,实话,没有记住什么,所以决定自己在对照着文档过一遍,所以之后会弄一些基础的东西,还请大神们莫喷~~~~今天先给平台打一个预防针,Young C 要来啦~~ ...

  3. Vue.js 数据绑定渲染Demo

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. <div id="app">{{ message }} </div> ...

  4. Vue的常用指令(v-html {{}}文本插值,v-bind绑定属性,v-if条件渲染,v-for列表渲染,v-on @ 事件绑定,v-model表单绑定)

    Vue的常用指令(文本插值,绑定属性,条件渲染,列表渲染,事件绑定,表单绑定) Vue 的介绍 Vue 是一套构建用户界面的渐进式前端框架. 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已 ...

  5. Vue.js高效前端开发 • 【初识Vue.js】

    全部章节 >>>> 文章目录 一.Vue概述 1.Web前端框架介绍 2.MVC和MVVM 3.Vue介绍 4.安装Vue 二.Vue使用 1.第一个Vue应用 2.Vue的双 ...

  6. Vuebnb:一个用vue.js和Laravel构建的全栈应用

    2019独角兽企业重金招聘Python工程师标准>>> 今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel.它会在Packt出版社在2018年初出版. ...

  7. Prettier 1.15代码格式化工具新增Angular和Vue.js支持

    Prettier 1.15代码格式化工具新增HTML.Vue.js.Angular.MDX支持以及多项语法优化和改进. 对于Angular和Vue,Prettier现在可以格式化这些扩展HTML的框架 ...

  8. Vue.js项目新建及目录结构分析

    初学vue.js   ,如有错误,请多多指教. hiahai~~   进入正题! 首先新建一个工程吧! 安装好vue环境之后,找一个你顺眼的文件夹 ~~   嘻嘻嘻嘻 ~~  作为你的vue的work ...

  9. 火速拿来用!对比 12,000 个 Vue.js 开源项目发现最实用的 TOP45!

    在过去一年里,前端开发发展迅速,前端工程师的薪资亦是水涨船高.2019 更是热度不减,而作为近年来尤为热门的前端框架,Vue.js 自是积累了大量关注.本文将为你介绍 2019 年最值得关注的 45 ...

  10. 推送近期三波关于Vue.js的资讯

    原文来自:集web前端最近很火的vue2框架资源:定时更新,欢迎Star一下. 推送自己整理近期三波关于Vue.js的资讯: 这里就抛砖引玉了,望有更屌的资源送助攻. 第一波 vue-js-toggl ...

最新文章

  1. 解决chrome extension无法下载的问题
  2. hdu 1688 Sightseeing
  3. PHP解决方案@时间戳与时间日期
  4. vue学习:vue中data和return data的区别
  5. 银行界加强计算机病毒管理,银行计算机管理系统维护现状与对策研究(7.12).doc...
  6. 华为推出业界首个分布式云原生产品:华为云UCS,持续创新,深耕数字化
  7. html定义不同的类,定义不同的节点类型.html
  8. [bzoj5158][Tjoi2014]Alice and Bob
  9. 01.J2EE开发环境搭建
  10. java 记账系统_案例分享用java开发实现一个记账系统(代码全)
  11. 大华条码秤数据同步发送数据格式
  12. JAVA-计算两篇文章的相似度
  13. 计算机安全泄露,哪些原因导致计算机信息泄露
  14. 商业智能BI推动制造业智能化转型
  15. TEXT部分文字颜色的改变
  16. 滚珠螺杆螺母的安装教程来了
  17. 【数字电路基础】时序电路和组合电路的区别、为什么要有触发器
  18. 传说中的移动员工工资表,也不知是真是假
  19. 【用复制粘贴让脚本动起来(二)】根据画面点击特定坐标
  20. Vue源码学习之Computed与Watcher原理

热门文章

  1. 全国计算机等级考试题库二级C操作题100套(第68套)
  2. linux文件编程(2)——系统文件描述符、动静态文件、块设备介绍
  3. c语言link错误什么原因,C语言 OpenCV错误:“LINK:致命错误LNK1104:无法打开文件’opencv_core231d.lib’”...
  4. python列表遍历 空列表_Python list列表执行reversed()后执行pop()返回迭代对象遍历为空问题...
  5. linux权限sudo和su,Linux su和sudo命令的区别,并获得root权限
  6. matlab msgbox 换行,[转载]Matlab/GUI笔记
  7. 45道CSS基础面试题
  8. Mysql数据库正则表达式
  9. 不要重新发明轮子_是否重新发明轮子
  10. 如何使用 Node 后端创建 React 应用程序:完整指南