Vue.js第一天学习笔记(数据的双向绑定、常用指令)


Posted in Javascript onDecember 01, 2016

数据的双向绑定(ES6写法)

 效果:

没有改变 input 框里面的值时:

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

将input 框里面的值清空时:

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

重新给  input 框输入  豆豆 后页面中  span  里绑定{{testData.name}}的值随着 input 框值的变化而变化.

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

在Vue.js中可以使用v-model指令在表单元素上创建双向数据绑定。并且v-model指令只能用于:<input>、<select>、<textarea>这三种标签。

<template>
<div>
 <div class="form-inline mg-top">
  <div class="form-group">
   <label class="control-label">姓名:</label>
   <input type="text" v-model='testData.name' class="form-control">
   <span class="control-span">姓名变为:{{testData.name}}</span>
  </div>
 </div>
</div>
</template>


<script>
export default {
 components: {
 },
 ready: function(){
 },
 methods: {
 },
 data() {
 return {
  testData:{
  id:'1',
  name:'张三',
  age:'18'
  }
 }
 }
}
</script>

Vue.js的组件可以理解为预先定义好了行为的ViewModel类。一个组件可以预定义很多选项,但最核心的是以下几个:

模板(template):模板声明了数据和最终展现给用户的DOM之间的映射关系。
注册组件(components):注册之后即可在父组件模板中以自定义元素的形式调用一个子组件。
初始数据(data):一个组件的初始数据状态。对于可复用的组件来说,这通常是私有的状态。
接受的外部参数(props):组件之间通过参数来进行数据的传递和共享。参数默认是单向绑定(由上至下),但也可以显式地声明为双向绑定。
方法(methods):对数据的改动操作一般都在组件的方法内进行。可以通过v-on指令将用户输入事件和组件方法进行绑定。
生命周期钩子函数(lifecycle hooks):一个组件会触发多个生命周期钩子函数,比如created,attached,destroyed等等。在这些钩子函数中,我们可以封装一 些自定义的逻辑。和传统的MVC相比,可以理解为 Controller的逻辑被分散到了这些钩子函数中。
私有资源(assets):Vue.js当中
将用户自定义的指令、过滤器、组件等统称为资源。由于全局注册资源容易导致命名冲突,一个组件可以声明自己的私有资源。私有资源只有该组件和它的子组件可以调用。

常用指令:

所谓 指令 ,其实本质就是在模板中出现的特殊标记,根据这些标记让框架知道需要对这里的 DOM 元素进行什么操作。

常用指令:

  • v-if指令
  • v-show指令
  • v-else指令
  • v-for指令
  • v-bind指令
  • v-on指令

v-if指令:

v-if根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template>,将提出它的内容作为条件块。

labelShowFlag是一个返回bool值的表达式,表达式可以是一个bool属性,也可以是一个返回bool的运算式。

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

html:

<label class="control-label" v-if='labelShowFlag'>喵嘞个咪</label>
<label class="control-label" v-if="testData.name=='张三'" >张三</label>

js:

<script>
export default {
 components: {
 },
 ready: function(){
 },
 methods: {
 },
 data() {
 return {
  labelShowFlag:true,
  testData:{
  id:'1',
  name:'张三',
  age:'18'
  }
 }
 }
}
</script>

v-show指令:

v-show也是条件渲染指令,和v-if指令不同的是,使用v-show指令的元素始终会被渲染到HTML,v-show 只是简单的切换元素的 CSS 属性 display。

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

html:

<label class="control-label" v-show='labelShowFlag'>喵嘞个咪</label>
<label class="control-label" v-show="testData.name=='张三'" >张三</label>

 js:

<script>
export default {
 components: {
 },
 ready: function(){
 },
 methods: {
 },
 data() {
 return {
  labelShowFlag:true,
  testData:{
  id:'1',
  name:'张三',
  age:'18'
  }
 }
 }
}
</script>

v-else指令:

可以用 v-else 指令给 v-if 或 v-show 添加一个 “else 块”,并且v-else 元素必须立即跟在 v-if 或 v-show 元素的后面——否则它不能被识别。

<label class="control-label" v-if='labelShowFlag'>喵嘞个咪</label>
<label class="control-label" v-if="testData.name=='张三'" >张三</label>
<label class="control-label" v-else>不是张三</label>

 v-for指令:

可以使用 v-for 指令基于一个数组渲染一个列表。这个指令使用特殊的语法,形式为 item in items,items 是数据数组,item 是当前数组元素的别名:

Vue.js第一天学习笔记(数据的双向绑定、常用指令)

html:

<ul>
 <li v-for="item in items">
 {{ item.message }}
 </li>
</ul>

 js:

<script>
export default {
 components: {
 },
 ready: function(){
 },
 methods: {
 },
 data() {
 return {
  labelShowFlag:true,
  testData:{
  id:'1',
  name:'张三',
  age:'18'
  },
  items: [{
  message: '豆豆'
  }, {
  message: '毛毛'
  }],
 }
 }
}
</script>

v-bind指令:

v-bind 指令用于响应地更新 HTML 特性 形式如:v-bind:class

html:

<label class="control-label" v-bind:class="{'pink-label': labelShowFlag}" >我是粉色的</label>
<label class="control-label">默认</label>

v-on指令:

v-on 指令用于监听DOM事件 形式如:v-on:click  缩写为 @click;

html:

<input type="button" class="form-control btn btn-primary" value="提交" @click='saveFun'>

js:

<script>
export default {
 components: {
 },
 ready: function(){
 },
 methods: {
 saveFun:function(){
  alert('提交');
 }
 },
 data() {
 return {
  labelShowFlag:true,
  testData:{
  id:'1',
  name:'张三',
  age:'18'
  },
  items: [{
  message: '豆豆'
  }, {
  message: '毛毛'
  }],
 }
 }
}
</script>

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
50个比较实用jQuery代码段
Sep 18 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
js判断上传文件的类型和大小示例代码
Oct 18 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
Jun 12 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
Bootstrap table的使用方法
Nov 02 Javascript
Vue2.0父子组件传递函数的教程详解
Oct 16 Javascript
深入浅析Vue 中 ref 的使用
Apr 29 Javascript
微信小程序网络请求实现过程解析
Nov 06 Javascript
jQuery 如何实现一个滑动按钮开关
Dec 01 #Javascript
有趣的bootstrap走动进度条
Dec 01 #Javascript
微信小程序进行微信支付的步骤昂述
Dec 01 #Javascript
第一次接触神奇的前端框架vue.js
Dec 01 #Javascript
bootstrapValidator自定验证方法写法
Dec 01 #Javascript
jQuery生成假加载动画效果
Dec 01 #Javascript
解析AngularJS中get请求URL出现的跨域问题
Dec 01 #Javascript
You might like
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
JavaScript 全角转半角部分
2009/10/28 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
js实现无缝轮播图特效
2020/05/09 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python和pyqt实现360的CLable控件
2014/02/21 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Python自动登录QQ的实现示例
2020/08/28 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
精选奢华:THE LIST
2019/09/05 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
银行求职信个人范文
2013/12/16 职场文书
家长对孩子评语
2014/01/30 职场文书
三下乡活动方案
2014/01/31 职场文书
中学生打架检讨书
2014/10/13 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python