二、 插值

本文详细介绍Vue.js的基础使用,包括插值显示、列表展示、计数器功能、Mustache语法及v-cloak指令的运用。通过实例讲解Vue的变量绑定、事件监听、模板语法等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、入门学习

1. 普通插值{{}}

  • let:变量 ----- const:常量;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue第一个页面</title>
</head>

<body>

    <!--1. 如果为class,则下面为 " . "
        2. 如果为id,则下面为 " # "    -->

    <div class = "first">
        {{name}} {{age}} {{address}}
    </div>

    <div id = "second">
        {{name}} {{age}} {{address}}
    </div>


    <!--1. 引入Vue.js-->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <script>
        /* 1.1 第一个模块变量*/
        // Vue对象: 名称必须是Vue
        const firstModule = new Vue({
            el: ".first",
            data: {
                name: "舒展",
                age: "27",
                address: "陕西富平",
            }
        })

        /*1.2 第二个模块变量,不同模块的名字必须不同*/
        const  secondModule = new Vue({
            el: "#second",
            data: {
                name: "路西",
                age: "24",
                address: "湖南长沙",
            }
        })

    </script>
</body>
</html>

2 .列表展示(v-for)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第二个案例</title>
</head>

<body>

<div class="first">
    <!--1. 无序列表,其中name可以换为其他任意字段-->
    <ul>
        <li v-for = "name in names">{{name}}</li>
    </ul>

    <!--2. 有序列表-->
    <ol>
        <li v-for = "item in names">{{item}}</li>
    </ol>

    <!--3. 控制台:
                 可以通过module.names.push('jerry')向数组中添加元素,
                 并且页面数据会动态变化   -->

</div>



<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>
    let module = new Vue({
        el: ".first",
        data: {
            /*数组*/
            names : ['Tom','Jack','Lucy'],
            address: "陕西富平",
        }
    })
</script>

</body>
</html>

3. 计数器(v-on:click)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>计数器</title>
</head>
<body>

<div class = "first">

    <!-- 0. h系列标签带自动换行功能,button标签不自动换行,用br换行-->
    <h2>计数器:{{counter}}</h2>

    <!-- 1. 简单的逻辑-->
    <!-- v-on:  代表监听事件; 2. click代表点击事件-->
    <button v-on:click = "counter++">+</button><br>
    <button v-on:click = "counter--">-</button><br>

    <!--2. 复杂的逻辑: 用函数-->
    <!--@click是v-on:click的语法糖-->
    <button @click="plus">+</button><br>
    <button @click="minus">-</button><br>

</div>


<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    let module = new Vue({
        el: ".first",
        data:{
            counter: 0,
        },
        methods:{

            /*this代表的是module这个对象,不加的话会在该script中去取全局变量*/
            /*console.log: 在浏览器页面打印日志*/

            plus:function (){
                this.counter++;
                console.log("加函数执行")
            },

            minus:function (){
                this.counter--;
                console.log("减函数执行")
            }
        }
    })
</script>
</body>
</html>

4. Mustache语法

  • {{}};
  • v-pre;
  • v-once;
  • v-text ;
  • v-html;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div class="first">
    <!--1. {{}} 插值显示-->
    {{firstName}}<br>                      <!--单独显示-->
    {{firstName}}{{lastName}}<br>           <!--组合显示-->
    {{firstName}}{{lastName}}你好啊<br>           <!--组合显示-->
    {{firstName + ":" + lastName}}<br>     <!--字符串拼接-->
    {{age*2+1}}<br>     <!--简单计算-->

    <!-- 2. v-pre: 不解析,直接显示firstName-->
    <h2>{{firstName}}</h2><br>
    <h2 v-pre>{{firstName}}</h2><br>

    <!--3. 一般的,页面控制台修改后变化,
                v-once根据元素和组件只渲染一次,-->
    <h2>{{firstName}}</h2><br>
    <h2 v-once>{{firstName}}</h2><br>

    <!--4. 覆盖: 用address的值将字面覆盖掉,页面显示陕西-->
    <h2>湖南</h2><br>
    <h2 v-text="address">湖南</h2><br>

    <!--5. v-html: 解析-->
    <h2>{{url}}</h2><!--页面显示:<a href="https://www.baidu.com">百度一下</a>-->
    <h2 v-html="url"></h2><!--将拿到的a标签解析成html的链接-->
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>

    let module = new Vue({
        el: ".first",
        data:{
            firstName: "舒",
            lastName: "展",
            age: 18,
            address: "陕西",
            url:"<a href=\"https://www.baidu.com\">百度一下</a>",
        }
    })
</script>

</body>
</html>

5. v-cloak

页面延迟显示;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--样式写在head里面-->
    <!--带有v-cloak的标签不展示-->
    <style>
        [v-cloak]{
            display: none;
        }
    </style>

</head>
<body>
<div id="first">
    <!--vue解析前,div中包含v-cloak属性-->
    <!--vue解析后,div中没有v-cloak属性-->
    <!--页面延迟显示-->
    <h2 v-cloak>{{name}}</h2>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    /*让js代码睡眠2分钟*/
    setTimeout(function () {
        let app = new Vue({
            el:"#first",
            data:{
                name:"张三"
            }
        })
    },2000)

</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值