vue文本指令跟事件指令

【文本指令】

# vue 的指令系统
	-1 写在标签上
    -2 以 v- 开头 都称之为vue的指令,有特殊含义
    
# 文本指令主要用来操作文本
	v-text:把文字渲染到标签内
    v-html:把文字渲染到标签内,如果是标签会渲染标签
    v-show:控制标签显示与否,隐藏
    v-if:控制标签显示与否,真的删除
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="app01">
    <h2> v-text:跟之前的插放一样</h2>
    <p v-text="name">v-text</p>
    <h2>v-html:跟之前的插放一样,渲染页面</h2>
    <p v-html="a">v-html</p>

    <h2>v-show  控制标签显示与否 没有删除标签,只是隐藏</h2>
    <img src="https://ts1.cn.mm.bing.net/th?id=OIP-C.Rmu2HNfPTot9nN9kWt0dbgHaNK&w=187&h=333&c=8&rs=1&qlt=90&o=6&dpr=2.6&pid=3.1&rm=2" v-show="B" height="200px" width="200px">
    <p>v-show</p>
    <hr>
    <h2>v-if :控制标签显示与否 直接把标签删除</h2>
    <img src="https://tse1-mm.cn.bing.net/th/id/OIP-C.Zte3ljd4g6kqrWWyg-8fhAHaEo?w=269&h=180&c=7&r=0&o=5&dpr=2.6&pid=1.7" v-if="if_show" height="200px" width="200px">
    <p>v-if</p>
    <h2></h2>
    <h2></h2>

</div>
<script>
    var vm = new Vue({
        el: "#app01",
        data: {
            name: "jing",
            a: '<a href="https://www.yituyu.com/">点我有惊喜噢!!!</a>',
            B: true,
            if_show: false
        }
    })

</script>

</body>
</html>

image-20240424205940296

【 事件指令 】

v-on:事件名='hand'
v-on:click ='hand'
简写成(用的多)
@click='hand'
方法必须放在methods中
  methods: {
        hand: function () {
            this.show = !this.show  // ! 取反
        }
    }
  • 在Vue.js中,使用 v-on:click 或简写 @click 指令可以监听DOM元素的点击事件,并在触发时执行相应的方法。通常情况下,你需要在Vue组件的 <script> 部分的 methods 中定义一个与事件处理相关的函数,比如你提到的 hand 函数,然后在模板中使用 v-on:click="hand" 将该函数与点击事件绑定起来。
<template>
  <button @click="handleClick">Click me</button>
</template>

<script>
export default {
  methods: {
    handleClick() {
      // 在这里编写处理点击事件的逻辑
      console.log('Button clicked!');
    }
  }
}
</script>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="app01">
    <h2> v-text:跟之前的插放一样</h2>
    <p v-text="name">v-text</p>
    <h2>v-html:跟之前的插放一样,渲染页面</h2>
    <p v-html="a">v-html</p>

    <h2>v-show  控制标签显示与否 没有删除标签,只是隐藏</h2>
    <img src="https://ts1.cn.mm.bing.net/th?id=OIP-C.Rmu2HNfPTot9nN9kWt0dbgHaNK&w=187&h=333&c=8&rs=1&qlt=90&o=6&dpr=2.6&pid=3.1&rm=2" v-show="B" height="200px" width="200px">
    <p>v-show</p>
    <hr>
    <h2>v-if :控制标签显示与否 直接把标签删除</h2>
    <img src="https://tse1-mm.cn.bing.net/th/id/OIP-C.Zte3ljd4g6kqrWWyg-8fhAHaEo?w=269&h=180&c=7&r=0&o=5&dpr=2.6&pid=1.7" v-if="if_show" height="200px" width="200px">
    <p>v-if</p>
    <h2>v-on:事件名='hand' 点击隐藏再点击显示!!!</h2>
    <p @click="hand" style="color: aqua">点我点我</p>
    <h2></h2>

</div>
<script>
    var vm = new Vue({
        el: "#app01",
        data: {
            name: "jing",
            a: '<a href="https://www.yituyu.com/">点我有惊喜噢!!!</a>',
            // 显示true隐藏false
            B: true,
            if_show: false
        },
        methods:{
            hand:function (){
                this.B = !this.B // 取反
            }
        }
    })

</script>

</body>
</html>

转播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="app01">
    <h2>v-show 控制标签显示与否 没有删除标签,只是隐藏</h2>
    <img src="https://ts1.cn.mm.bing.net/th?id=OIP-C.Rmu2HNfPTot9nN9kWt0dbgHaNK&w=187&h=333&c=8&rs=1&qlt=90&o=6&dpr=2.6&pid=3.1&rm=2"
         v-show="B" height="200px" width="200px">
    <p>v-show</p>
    <hr>
    <h2>v-if :控制标签显示与否 直接把标签删除</h2>
    <span>文件指令</span>
    <img src="https://tse1-mm.cn.bing.net/th/id/OIP-C.Zte3ljd4g6kqrWWyg-8fhAHaEo?w=269&h=180&c=7&r=0&o=5&dpr=2.6&pid=1.7"
         v-if="if_show" height="200px" width="200px">
    <p>v-if</p>
    
    <span>事件指令</span>
    <h2>v-on:事件名='hand' 点击隐藏再点击显示!!!</h2>
    <p @click="hand" style="color: aqua">点我点我</p>
    <h2>v-bind可以简化成:冒号</h2>
    
    <span>属性指令</span>
    <img :src="image" height="300px" width="300px">
    <h2>111111111111</h2>
    <button @click="startStop">{{ isRunning ? '停止' : '开始' }}</button>
</div>
<script>
    var vm = new Vue({
        el: "#app01",
        data: {
            name: "jing",
            a: '<a href="https://www.yituyu.com/">点我有惊喜噢!!!</a>',
            B: true,
            timer: null,
            if_show: false,
            image: "img/16.jpg",
            images: [
                "img/14.jpg",
                "img/15.jpg",
                "img/20.jpg",
                "img/21.jpg",
                "img/22.jpg",
                "img/23.jpg",
                "img/24.jpg",
            ],
            isRunning: false,
            pohots: 0 // 添加currentIndex属性来追踪当前图片索引
        },
        methods: {
            hand: function () {
                this.B = !this.B;
            },
            startStop: function () {
                if (this.isRunning) {
                    // 清除由 setInterval(函数,时间) 设置的定时器
                    clearInterval(this.timer);
                } else {
                    //
                    this.timer = setInterval(this.nextImage, 1000);
                }
                this.isRunning = !this.isRunning;
            },
            nextImage() {
                this.pohots = (this.pohots + 1) % this.images.length;
                this.image = this.images[this.pohots];
            }
        }
    });
</script>
</body>
</html>
  • 方法

clearInterval() 是用来清除由 setInterval() 设置的定时器。在 JavaScript 中,setInterval() 函数用于每隔一段时间重复执行指定的代码。而 clearInterval() 则用于停止这个重复执行的过程,即清除定时器,使其不再触发。

​ 示例中,clearInterval(this.timer) 用于停止图片轮播的定时器,确保当用户点击按钮暂停轮播时,不再继续触发下一张图片的显示。

setInterval() 是 JavaScript 中的一个函数,用于周期性地执行指定的代码。它接受两个参数:要执行的代码或函数,以及执行代码之间的时间间隔(以毫秒为单位)。

​ 例如,如果你想每隔一段时间显示一次消息,你可以使用 setInterval() 函数来实现:

setInterval(function() {
    console.log("Hello, world!");
}, 1000); // 每隔1秒钟打印一次 "Hello, world!"

image-20240424221625198

image-20240424221638144

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值