41、Vue了解笔记

=>目的:了解Vue的大致机理、为更好的学习后端

一、Vue简介

二、Vue项目创建

三、Vue学习笔记

3.1、简易的计数器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HelloVue</title>
</head>
<body>
<div id="app1">
    <h2>计数器:{{counter}}</h2>

    <!--<button v-on:click="counter++">+</button>-->
    <!--<button v-on:click="counter--">-</button>-->

    <!--<button v-on:click="add">+</button>-->
    <!--<button v-on:click="sub">-</button>-->

    <button @click="add">+</button> <!--@为v-on:的简写-->
    <button @click="sub">-</button> <!--@为v-on:的简写-->

</div>
<script src="../vue2/vue.js"></script> <!--导入vue源码,类似C语言的#include<stdio.h>-->
<script>
    const app = new Vue({    <!--定义一个app对象-->
        el:"#app1",
        data:{               <!--注意 {counter:0} 是一个对象,即冒号之后放的是一个对象-->
            counter:0
        },
        methods:{
            add:function(){
                console.log('add被执行');    <!--在浏览器的控制台打印字符串-->
                this.counter++;
            },
            sub:function(){
                console.log('sub被执行');    <!--在浏览器的控制台打印字符串-->
                this.counter--;
            }
        }
    })
</script>
</body>
</html>

3.2、 MVVM

MVVM:Model-View-ViewModel的简写,

MVVM的框架如图所示:
一、ViewModel通过Data Bindings让obj中的数据实时在DOM中显示。
二、ViewModel通过DOM Listeners来建通DOM事件,并通过methods中的操作,改变obj中的数据。
Vue是典型的MVVM框架,让界面UI与数据相互分离。

3.3、Vue的生命周期

Vue具体的执行过程可以看Vue源码,Vue执行有很多的阶段,其实就是一系列函数的执行过程,每个阶段执行完毕会执行相应的回调函数,用户可以自己定义回调函数,通过回调函数的执行来获取Vue到底执行到哪一步了。

3.4、基础语法

3.4.1、Mustache

Mustache语法就是双大括号的用法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue-Mustache</title>
</head>
<body>
<div id="app1">
    <!--双大括号为Mustache语法,双大括号中不仅可以直接写变量,也可以写简单的表达式-->
    <h2>{{message}}</h2>
    <h2>{{message}},科比</h2>
    <h2>{{firstname + lastname}}</h2>
    <h2>{{firstname + ' ' + lastname}}</h2>
    <h2>{{firstname}} {{lastname}}</h2>
    <h2>{{counter*2}}</h2>
</div>
<script src="../vue2/vue.js"></script> <!--导入vue源码,类似C语言的#include<stdio.h>-->
<script>
    const app = new Vue({
        el:'#app1',
        data:{
            message:'你好呀',
            firstname:'kobi',
            lastname:'bryant',
            counter:100
        }
    })
</script>
</body>
</html>

3.4.2、v-once

app对象的成员和DOM的显示是实时的,我们在控制台更改app对象时,DOM会实时显示最新的值,如果想不实时更改,加v-once属性可以让大括号只响应一次,即只在初始更新一次

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue-Mustache</title>
</head>
<body>
<div id="app1">
    <h2>{{message}}</h2>            <!--实时更新显示-->
    <h2 v-once>{{message}}</h2>     <!--不实时更新显示-->
</div>
<script src="../vue2/vue.js"></script>
<script>
    const app = new Vue({
        el:'#app1',
        data:{
            message:'你好呀',
        }
    })
</script>
</body>
</html>

3.4.3、v-html

以html的形式展示字符串,例如从服务器接收到'<a href="http://www.baidu.com.com">百度一下</a>',要求解析网址,并以html的形式展示字符串。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue-Mustache</title>
</head>
<body>
<div id="app1">
    <h2>{{message}}</h2>
    <h2 v-html="url"></h2>
</div>
<script src="../vue2/vue.js"></script>
<script>
    const app = new Vue({
        el:'#app1',
        data:{
            message:'你好呀',
            url:'<a href="https://www.baidu.com">百度一下</a>'
        }
    })
</script>
</body>
</html>

3.4.4、v-text

v-text可以文本的形式解析变量并显示,但是一般不使用,因其本身在用法上不太灵活。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue-Mustache</title>
</head>
<body>
<div id="app1">
    <h2>{{message}}</h2>
    <h2 v-text="message"></h2>
</div>
<script src="../vue2/vue.js"></script>
<script>
    const app = new Vue({
        el:'#app1',
        data:{
            message:'你好呀',
        }
    })
</script>
</body>
</html>

3.4.4、v-pre

Mustache语法或者其他的语法会被Vue解析显示,如果你想让标签不被解析显示,而是原封不动的显示标签的内容,就可以使用v-pre

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue-Mustache</title>
</head>
<body>
<div id="app1">
    <h2>{{message}}</h2>
    <h2 v-pre>{{message}}</h2>
</div>
<script src="../vue2/vue.js"></script>
<script>
    const app = new Vue({
        el:'#app1',
        data:{
            message:'你好呀',
        }
    })
</script>
</body>
</html>

3.4.5、v-cloak

程序从上往下执行,故先渲染便签,再执行js解析显示,如如程序所示,当执行到js时,被卡了1000ms,以至于渲染后不能被js解析替换,从而出现前1000ms显示{{message}},1000ms之后才解析被解析显示。
解决办法如下:

更新中·。。。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值