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 相关文章推荐
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
JavaScript实现移动端滑动选择日期功能
Jun 21 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
详解自动生成博客目录案例
Dec 09 Javascript
Bootstrap 3 按钮标签实例代码
Feb 21 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
Oct 09 Javascript
vue element中axios下载文件(后端Python)
May 10 Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 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读取csv文件内容的详解
2013/06/18 PHP
浅析PHP绘图技术
2013/07/03 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
php验证码生成代码
2015/11/11 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
python自动安装pip
2014/04/24 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
基于python实现从尾到头打印链表
2019/11/02 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
简单的辞职信范文
2014/01/18 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
师德师风个人整改措施
2014/10/27 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python