一、生命后期

 官网的图片说明:

Vue的生命周期总结

var app = new Vue({
  el:"#app",
  beforeCreate: function(){
    console.log('1-beforeCreate 初始化之前');
    //加载loading
  },
  created: function(){
    console.log('2-created 创建完成');
  //关闭loading
},
beforeMount: function(){
console.log('3-beforeMount 挂载之前');
},
mounted: function(){
console.log('4-mounted 被挂载之后');
},
beforeUpdate: function(){
console.log('5-beforeUpdate 数据更新前');
},
updated: function(){
console.log('6-updated 被更新之后');
},
activated: function(){
console.log('7-activated');
},
deactivated: function(){
console.log('8-deactivated');
},
beforeDestroy: function(){
console.log('9-beforeDestroy 被销毁之前');
},
destroyed: function(){
console.log('10-destroyed 销毁之后');
}
});

二、数据绑定

1、数据绑定语法

  【文本插值】

<div id="app">{{ Name }}</div>

//script
var app = new Vue({
el:"#app",
data: {
Name : '小可爱'
}
});

  【HTML属性】

<p v-bind:id="pId">永恒的绽放</p>
//缩写,冒号
<p :id="pId">永恒的绽放</p> //script
var app = new Vue({
el:"#app",
data: {
Name: "小可爱",
pId: "wrn"
}
});

  【绑定表达式】

{{ Num + 2 }}//成功
{{ Num < 5 ? '小于5' : '大于等于5'}}//成功
{{ Name.split('').join('|') }}//成功
{{ var a = 2 }}//失败
{{ if(Num>2) { return '可怕' } }}//失败 //script
data: {
Name: "小可爱",
pId: "wrn",
Num: 5
}

  【过滤器】

//一个过滤器
<p>{{ UserName | toUppercase }}</p>
//多个过滤器,将前一个过滤器的值传给下一个
<p>{{ UserName | toUppercase | addStr }}</p>
//多参数过滤器,默认参数为第一个值
<p>{{ UserName | manyPara('say', 'hello') }}</p> //script
filters: {
toUppercase: function (value) {
return value.toUpperCase();
},
addStr: function (value) {
return value + " 老可爱了";
},
manyPara: function (p1, p2, p3) {
return p1+ ' ' + p2 + ' ' + p3;
}
},

  【指令】

<button v-on:click="test(2, $event)">点击</button>
//缩写,@符
<button @click="test(2, $event)">点击</button> //script
methods:{
test: function(a, event){
console.log(a);
console.log(event);
},
}

2、计算属性(computed)

{{ eYa }}
{{ act }} //script,可以直接当参数使用
computed:{
eYa: function(){
return this.Num + 5;
},
act: {
get: function(){
return this.Num;
},
set: function(newVaue){
this.Num += newVaue;
console.log(newVaue)
}
}
} ,

3、表单控制

  【表单控件】

<input type="text" v-model="InpVal"/>
<p>input的值:<span>{{ InpVal }}</span></p>
<input type="radio" value="1" v-model="rdoVal"/>
<input type="radio" value="2" v-model="rdoVal"/>
<input type="radio" value="3" v-model="rdoVal"/>
<p>radio的值:<span>{{ rdoVal }}</span></p>
<input type="checkbox" value="stay" v-model="ckb1Val"/>
<p>单选checkbox的值:<span>{{ ckb1Val }}</span></p>
<input type="checkbox" value="stay" v-model="ckb2Val"/>
<input type="checkbox" value="with" v-model="ckb2Val"/>
<input type="checkbox" value="me" v-model="ckb2Val"/>
<p>复选checkbox的值:<span>{{ ckb2Val }}</span></p>
<select v-model="sel1Val">
<option value="1">如果有天</option>
<option value="2">我走了</option>
<option value="3">你会像马达那样</option>
<option value="4">找我么</option>
</select>
<p>单选select的值:<span>{{ sel1Val }}</span></p>
<select v-model="sel2Val" multiple>
<option value="0">会一直找么</option>
<option value="1">会一直找到死么</option>
</select>
<p>复选select的值:<span>{{ sel2Val }}</span></p>

script部分

var app = new Vue({
el:"#app",
data: {
InpVal : "早已沉入冰冷的谷底",
rdoVal : 2,
ckb1Val : true,
ckb2Val : ["stay", "me"],
sel1Val : 3,
sel2Val : [0, 1],
}
});

  需要注意的是sel2val的赋值是int数组,可是在选择值得时候,会变成string数组

  【参数特性】

  .lazy,自动将输入转化为数值类型;

  .number,自动将输入转化为数值类型;

  .trim,自动过滤收尾空白字符;

<input type="text" v-model.lazy="User.Name"/>{{User.Name}}
<input type="text" v-model.number="User.Size"/>{{User.Size}}
<input type="text" v-model.trim="User.Tel"/>{{User.Tel}} //script
data: {
User:{
Name: "老王",
Size: "18",
Tel: "110"
}
}

4、class与style

  【class】

<p :class="{'ClassA': isA, 'ClassB': !isA}">男孩抓紧领口</p>
<p class="ClassA" :class="BClass">有些感觉是说不出口</p>
<p :class="['AClass', 'BClass']">有些烦恼让人抓破了头</p> //页面
<p class="ClassB">男孩抓紧领口</p>
<p class="ClassA">有些感觉是说不出口</p>
<p class="AClass BClass">有些烦恼让人抓破了头</p> //script
data: {
isA: false,
AClass: "ClassA",
BClassb: "ClassB"
},

  【style】

  注意,border-bottom变量命名为borderBottom

<p :style="StyleInfo">不要哭,这些年都过来了</p>
<p :style="{color: StyleInfo.color}">对不起,盲目的我</p>
<p :style="[StyleInfo, StylePlus]">没有心,只像闲人</p> //页面
<p style="color: red; font-size: 16px;">不要哭,这些年都过来了</p>
<p style="color: red;">对不起,盲目的我</p>
<p style="color: red; font-size: 16px; border-bottom: 1px solid rgb(0, 0, 0);">没有心,只像闲人</p> //script
data: {
StyleInfo:{
color: "red",
fontSize: "16px",
},
StylePlus:{
borderBottom: "1px solid #000"
}
},

【Vue.js学习】生命周期及数据绑定的更多相关文章

  1. Vue js 的生命周期详解

    Vue 实例的生命周期 Vue 实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom→渲染.更新→渲染.卸载等一系列 过程,我们称这是 Vue 的生命周期.通俗说就是 Vue ...

  2. vue.js之生命周期,防止闪烁,计算属性的使用,vue实例简单方法和循环重复数据

    摘要:今天是比较糟糕的一天没怎么学习,原因是学校的wifi连不上了~~.今天学习一下vue的生命周期,如何防止闪烁(也就是用户看得到花括号),计算属性的使用,vue实例简单方法,以及当有重复数据时如何 ...

  3. Vue js 的生命周期(看了就懂)

    转自: https://blog.csdn.net/qq_24073885/article/details/60143856 用Vue框架,熟悉它的生命周期可以让开发更好的进行. 首先先看看官网的图, ...

  4. Vue.js之生命周期

    有时候,我们需要在实例创建过程中进行一些初始化的工作,以帮助我们完成项目中更复杂更丰富的需求开发,针对这样的需求,Vue提供给我们一系列的钩子函数. vue生命周期 beforeCreate 在实例初 ...

  5. vue.js的生命周期 及其created和mounted的部分

    网上很多人有所总结,转载自: https://segmentfault.com/a/1190000008570622   关于created和mounted的部分,也可以参考: https://blo ...

  6. Vue.js——5.生命周期

    Vue的生命周期 创建阶段new Vue1,beforeCreate() 表示在实例没有被创建出来之前会执行它加载data和methods2,caeated() data 和methods被初始化了 ...

  7. Vue.js学习笔记 第一篇 数据绑定

    双花括号文本插值 先来个最简单的例子,看完之后立马会用Vue了,是不是很有成就感 <!DOCTYPE html> <html> <head> <meta ch ...

  8. Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖

    1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...

  9. 从零开始学 Web 之 Vue.js(三)Vue实例的生命周期

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  10. Vue.js-07:第七章 - Vue 实例的生命周期

    一.前言  在之前的 Vue 学习中,我们在使用 Vue 时,都会创建一个 Vue 的实例,而每个 Vue 实例在被创建时都要经过一系列的初始化过程.例如,需要设置数据监听.编译模板.将实例挂载到 D ...

随机推荐

  1. Pro * c Oracle 12c

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<sqlca.h> vo ...

  2. offsetHeight,scrollHeight,clientHeight,scrollTop以及pageX,clientX,offsetX,screenX,offsetLeft,style.left等的区别以及使用详解

    一.写在前面 在阅读本文前,希望大家能针对每个属性亲手测试,网上现有的大量相关博客都有不等的概念错误,毕竟亲手实践才能更好的掌握这些概念. 1.pageX,clientX,screenX与offset ...

  3. 实现一个简易的vue的mvvm(defineProperty)

    这是一个最近一年很火的面试题,很多人看到这个题目从下手,其实查阅一些资料后,简单的模拟还是不太难的: vue不兼容IE8以下是因为他的实现原理使用了 Object.defineProperty 的ge ...

  4. 邂逅jQuery

    jQuery是一个流行的JavaScript库,提供了HTML操作,CSS操作,事件,动画,Ajax和常用插件,极大地简化了JavaScript的开发. 可以从jquery.com下载jQuery库, ...

  5. 网络之XML解析-GData

    GDataXML是一套Google使用Objective-C开发的DOM方式XML解析类库,支持读取和修改XML文档,支持XPath方式查询, GDataXML 是 iOS 下的一款轻量级 XML 解 ...

  6. [日常] Go语言圣经-Panic异常,Recover捕获异常习题

    Go语言圣经-Panic异常1.当panic异常发生时,程序会中断运行,并立即执行在该goroutine中被延迟的函数(defer 机制)2.不是所有的panic异常都来自运行时,直接调用内置的pan ...

  7. redis主从|哨兵|集群模式

    关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据,因为持久化会把内存中数据保存到硬盘上,重 ...

  8. Spring MVC + Velocity实现国际化配置

    国际化介绍 web开发中,国际化是需要考虑的一个问题,而且这个问题一般是越早敲定越好(不然等到系统大了,翻译是个问题).下面是结合实际项目(Spring MVC+Velocity)对实现国际化的一些总 ...

  9. php面向对象精要(2)

    1,self与parent关键字 >self指向当前的类,常用来访问静态成员,方法和常量 >parent指向父类,常用来调用父类的构造函数和方法和成员,也可以用来访问常量 <?php ...

  10. SQL2008R2数据库日志太大收缩方法

    1.登陆项目平台数据库服务器.双击SQL Server Management Studio打开数据库管理.登陆数据库 2.如下图,打开数据库属性窗口 3.如下图,更改数据库恢复模式 4.如下图,收缩数 ...