指令系统Vue

指令中封装了一些DOM行为,结合属性作为一个暗号,暗号有对应的值,根据不同的值,框架会进行相应的DOM操作的绑定。

文章目录


一,更新元素的指令(文本指令)

1.v-text

 v-text等价于 {{}} ,实现原理:innerText。

 


2.v-html

 v-html实现原理是js中的innerHTML方法。

注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译

  • 常用的事件有:点击事件,双击事件,拖动事件,得到焦点,失去焦点。。。。

二,事件指令

1.v-on

  • v-on 事件绑定指令,用来辅助程序员为DOM 元素绑定事件监听,并提供处理逻辑。

  • 常用的事件有:点击事件,双击事件,拖动事件,得到焦点,失去焦点........

2.es6的对象写法 

3.v-on调用传参 

1 》函数有一个参数
如果在事件中触发函数,没有传参数,会自动把事件对象传入
定义好的参数,传的就是什么参数
把事件对象传入($event)
2》函数有多个参数
少传不加括号,但是js里面的函数需要多个参数,结果是第一个是事件对象,其他为undefined
少传加括号,但是js里面的函数需要多个参数,不会把自动把事件对象传入,均为undefined
需要3个参数,但是多传了参数,结果是只接受自己的3个参数,多的不要
多个参数中,需要传入事件对象,方式为$even

三,属性指令

v-bind 属性绑定指令,用来动态的设置html的标签属性,比如:src、url、title...

1,v-bind

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./vue/vue.js"></script>
</head>
<body>
<div id="app">
    <button @click="toggleAutoChange">{{ isAutoChanging ? '停止' : '开始' }}自动切换美女图片</button>
    <img :src="currentImage" alt="Beautiful Girl">
</div>
</body>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            isAutoChanging: false,
            images: [
                "http://img.netbian.com/file/2024/0416/004850qAPxg.jpg",
                "http://img.netbian.com/file/2024/0411/0016435MJh0.jpg",
                "http://img.netbian.com/file/2024/0409/002601sxcu4.jpg",
                "http://img.netbian.com/file/2024/0323/001609whWN7.jpg"
            ],
            currentIndex: 0,
            intervalId: null
        },
        computed: {
            currentImage() {
                return this.images[this.currentIndex];
            }
        },
        methods: {
            toggleAutoChange() {
                this.isAutoChanging = !this.isAutoChanging;
                if (this.isAutoChanging) {
                    this.interval = setInterval(() => {
                        this.currentIndex = (this.currentIndex + 1) % this.images.length;
                    }, 1000);
                } else {
                    clearInterval(this.interval);
                }
            }
        },
        destroyed() {
            clearInterval(this.interval);
        }
    })
</script>
</html>

2,v-bind 对于样式控制的增强 - 操作class

代码如下(示例):

 

总结

1、注意v-bind和v-on的简写

v-bind

<img :src="imgSrc" :title="time">    <==对应==>   <img v-bind:src="imgSrc" v-bind:title="time">

v-on 

<button @click = "clickHandler">切换</button>  <==对应==>  <button v-on:click="clickHandler">切换</button>

2、对页面的dom进行赋值的运算 

 v-test、v-html、{{}}都是对页面的dom进行赋值,相当于js中的 innnerText 和 innerHTML。

3,vue的思想

vue是渐进式的JavaScript框架。大多数人觉得做加法比做减法简单。

  vue这个框架将做减法的事情(困难的部分)都帮忙做了,人们只需要简单的部分就能实现复杂的dom操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值