【Vue.js学习】生命周期及数据绑定

一、生命后期

 官网的图片说明:

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"
    }
},

原文地址:https://www.cnblogs.com/blackarrow/p/8582277.html

时间: 2024-11-10 02:49:21

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

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

用Vue框架,熟悉它的生命周期可以让开发更好的进行. 首先先看看官网的图,详细的给出了vue的生命周期: 它可以总共分为8个阶段: beforeCreate(创建前), created(创建后), beforeMount(载入前), mounted(载入后), beforeUpdate(更新前), updated(更新后), beforeDestroy(销毁前), destroyed(销毁后) 然后用一个实例的demo 来演示一下具体的效果: <div id=app>{{a}}</div

Vue.js之生命周期

有时候,我们需要在实例创建过程中进行一些初始化的工作,以帮助我们完成项目中更复杂更丰富的需求开发,针对这样的需求,Vue提供给我们一系列的钩子函数. vue生命周期 beforeCreate 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"

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

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.vue实例的生

聊一聊Vue实例与生命周期运行机制

Vue的实例是Vue框架的入口,担任MVVM中的ViewModel角色,所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM .在这个过程中,事件钩子可以辅助我们对整个实例生成.编译.挂载.销毁等过程进行js控制,给我们提供了执行自定义逻辑的机会.所以学习实例的生命周期,能帮助我们理解vue实例的运行机制,更

Vue中对生命周期的理解

Vue中对生命周期的理解 1. 实例.组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载ね,只是一个空壳,无法访问到数据和真实的dom,一般不做操作 2. 挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 3. 接下来开始找实例

Vue.js 学习记录

一.Vue起步 Vue:构建用户界面的渐进式框架. 1.helloworld <div id="app">{{content}}</div> 原生方法: <script> var dom = document.getElementById('app'); dom.innerHTML = 'helloworld'; </script> Vue 方法: <script> //创建Vue实例 var app = new Vue({

黑马eesy_15 Vue:vue语法和生命周期与ajax异步请求

自学Java后端开发,发现14 微服务电商[乐优商城]实战项目,在介绍完SpringCloud后就要肝前端基础知识ES6和Vue. 所以本篇入门Vue练习记录的过程,目的是供自学后端Java遇到Vue使用需求的时候加强一下Vue基本使用的能力. vue语法和生命周期与ajax异步请求 1.Vue的快速入门2.Vue的语法 插值表达式 事件的绑定 数据的显示 逻辑判断和循环输出3.Vue的生命周期 8个生命周期的执行点 4个基本的 4个特殊的4.axios的ajax异步请求 它和jquery的aj

Vue.js学习笔记:在元素 和 template 中使用 v-if 指令

f 指令 语法比较简单,直接上代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <script src="https://cdn.bootcss.com/vue/2.2.

Vue.js学习笔记(7)组件详解

在这篇文章之前小颖分享过小颖自己写的组件:Vue.js学习笔记(5)tabs组件和Tree升级版(实现省市多级联动) 先给大家看下小颖写了一个简单的组件示例: 组件: <template> <div class='content' v-if='showFlag'> <input type="text" v-bind:style='{ width:compwidth+"px"}' v-model='compvalue' @keyup='m

vue组件的生命周期

先来张组件生命周期的示意图: 文档里是这样描述的:你不需要立马弄明白所有的东西,不过以后它会有帮助.传送门. Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期待的Vue实例不同. 1.beforeCreate 在实例初始化之后,数据观测和event/watcher时间配置之前被调用. 2.created 实例已经创建完成之后被调用.在这一步,实例