vue入门 第一天(下)

时间:2025-03-05 15:06:43

1.1-Vue指令介绍

  • Vue指令官网文档传送门:API —

  • 指令的本质是 : Vue为HTML标签新增的一些属性

    • a. 每一个HTML标签都有自己的原生默认属性

      • HTML标签的每一个属性都有自己独特的功能

      • 例如 img标签的src属性,a标签的href属性

    • b. Vue认为,HTML标签原生的属性还不够用,所以Vue为HTML标签新增了很多的属性,每一个属性(指令)都可以实现一个强大的功能

  • 2.在Vue中每一个指令都是以v-开头 (用于区分HTML标签原生属性)

    • 语法 : 指令名=“指令值”

      • 例如 v-text = msg

  • 3.使用Vue的指令,就像使用HTML标签原生的属性一样去使用即可。

<img src="./images/" alt="图片不存在时的文本" title="鼠标悬停文本" v-on:click = "doClick">
src" : 原生属性,设置图片的路径
alt : 原生属性 ,设置图片不存在时的文本
title:原生属性,设置鼠标悬停文本
v-on:click:vue给img标签新增的属性, 给元素绑定点击事件

==知识点验收==

问题1: 指令是vue框架的核心功能之一,请说出指令的作用?

给标签新增一些功能

问题2: 指令的本质是什么?

自定义属性

1.2-v-text指令

  • v-text指令官方文档传送门:API —

<!-- 
1.学习目标 :  v-text 指令
2.学习路线
    a.作用: 设置元素的文本 innerText
    b.与插值表达式区别
        v-text 设置元素的文本,如果元素有文本,则会覆盖现有的文本
        {{ }}  只会替换当前位置文本
 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 导包 -->
    <script src="./"></script>
</head>
​
<body>
​
    <!-- HTML结构 -->
    <div >
        <p v-text="msg">传智播客</p>
        <p v-text="msg1">传智播客</p>
        <p>我爱你: {{ msg }}</p>
    </div>
    <!-- 
        1.学习目标 :  v-text 指令
        2.学习路线
            a.作用: 设置元素的文本 innerText
            b.与插值表达式区别
                v-text 设置元素的文本,如果元素有文本,则会覆盖现有的文本
                {{ }}  只会替换当前位置文本
​
     -->
    <script>
        /* 创建vue实例 */
        let app = new Vue({
            //el:挂载点
            el: '#app',
            //data: 要渲染的数据
            data: {
                msg: '我是坤坤!',
                msg1:'<h1>黑马程序员</h1>'
            }
        })
    </script>
</body>
</html>

==知识点验收==

  • 问题1: v-text指令作用是什么?

    • 设置元素的innerText

  • 问题2: v-text指令与差值语法 {{ }}的区别是什么?

1.3-v-html指令

  • v-html指令官方文档传送门:API —

<!-- 
    1.学习目标 :  v-html 指令
    2.学习路线
        作用: 设置元素的innerHTM
 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 导包 -->
    <script src="./"></script>
</head>
​
<body>
​
    <!-- HTML结构 -->
    <div >
        <p v-text="msg">传智播客</p>
        <p v-text="msg1">传智播客</p>
        <p v-html="msg1">传智播客</p>
    </div>
    <!-- 
        1.学习目标 :  v-html 指令
        2.学习路线
            作用: 设置元素的innerHTM
     -->
    <script>
        /* 创建vue实例 */
        let app = new Vue({
            //el:挂载点
            el: '#app',
            //data: 要渲染的数据
            data: {
                msg: '我是坤坤!',
                msg1:'<h1>黑马程序员</h1>'
            }
        })
    </script>
</body>
</html>

==知识点验收==

问题1:v-html指定作用是什么?

问题2:v-html指令与v-text指令区别是什么?

1.4-v-on指令(绑定事件)

1.4.1- v-on基本使用

  • v-on指令官方文档传送门:API —

<!-- 
    1.学习目标 :  v-on 指令
    2.学习路线
        a.作用: 给元素绑定事件
        b.语法: 
            标准语法:     v-on:事件名 = "方法名"
            简洁语法:     @事件名 = "方法名"
        c.注意点
            事件名就是原生事件名去掉on
            事件方法定义在vue实例的methods对象中
 -->
<!DOCTYPE html>
<html lang="zh-CN">
​
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 导包 -->
    <script src="./"></script>
​
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>
​
<body>
​
    <!-- HTML结构 -->
    <div >
        <button v-on:click="doClick">点我</button>
        <div class="box" v-on:mouseenter="doEnter" v-on:mouseleave="doLeave"></div>
        <hr>
        <div class="box" @mouseenter="doEnter" @mouseleave="doLeave"></div>
    </div>
    <!-- 
        1.学习目标 :  v-on 指令
        2.学习路线
            a.作用: 给元素绑定事件
            b.语法: 
                标准语法:     v-on:事件名 = "方法名"
                简洁语法:     @事件名 = "方法名"
            c.注意点
                事件名就是原生事件名去掉on
                事件方法定义在vue实例的methods对象中
     -->
    <script>
        /* 创建vue实例 */
        let app = new Vue({
            //el:挂载点
            el: '#app',
            //data: 要渲染的数据
            data: {
​
            },
            //method:注册事件的方法名
            methods: {
                doClick() {
                    alert('我被点击了')
                },
                doEnter() {
                    ('鼠标移入我了')
​
                },
                doLeave() {
                    ('鼠标移出我了')
                }
            },
        })
    </script>
</body>
​
</html>

==知识点验收==

  • 问题1:v-on指令的作用是什么?

    • 给元素绑定事件

  • 问题2: v-on指令有几种写法?

    • 两种写法

      • 标准写法 v-on:事件名 = "事件处理函数"

      • 简洁写法 @事件名 = "事件处理函数"

  • 问题3: v-on指令使用时需要注意什么问题?

    • 事件名不要on, click mouseenter

    • 事件处理函数写在methods

1.4.2- vue事件修饰符

  • vue事件修饰符官方文档传送门:事件修饰符使用

<!-- 
    1.学习目标 :  事件修饰符
    2.学习路线
        a.作用: 限定事件触发行为(例如阻止冒泡,阻止默认行为等)
        b.语法: @事件名.修饰符 = "方法名"
 -->
<!DOCTYPE html>
<html lang="zh-CN">
​
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 导包 -->
    <script src="./"></script>
​
    <style>
        .father{
            width: 300px;
            height: 300px;
            background-color: #f00;
        }
​
        .son{
​
            width: 100px;
            height: 100px;
            background-color: #0f0;
        }
    </style>
</head>
​
<body>
​
    <!-- HTML结构 -->
    <div >
        <div class="father" @="fatherClick">
            我是father
            <div class="son" @="sonClick">我是son</div>
        </div>
​
        <form action="">
            <button @="doSubmit">点我啊</button>
        </form>
​
        <!-- 输入框 : enter键 -->
        <!-- <input type="text" @keyup.13="doUp"> -->
        <!-- 用enter,易读 -->
        <input type="text" @="doEnter">
    </div>
    <!-- 
        1.学习目标 :  事件修饰符
        2.学习路线
            a.作用: 限定事件触发行为(例如阻止冒泡,阻止默认行为等)
            b.语法: @事件名.修饰符 = "方法名"
     -->
    <script>
        /* 创建vue实例 */
        let app = new Vue({
            //el:挂载点
            el: '#app',
            //data: 要渲染的数据
            data: {
​
            },
            //method:注册事件的方法名
            methods: {
                fatherClick () {
                    ('我是父元素');
                },
                sonClick () {
                    ('我是子元素');
​
                },
                doSubmit () {
                    ('提交按钮');
                },
                doEnter(){
                    ('按了enter键')
                }
            },
        })
    </script>
</body>
​
</html>

==知识点验收==

  • 问题1: 如何绑定enter键事件?

    • @

  • 问题2: 如何阻止事件冒泡?

    • @

  • 问题3: 如何阻止事件默认行为?

    • @