vue基础学习(3)DOM

博客主要总结了Vue中的DOM操作。指出在Vue里DOM操作比JQ少,介绍了在DOM元素中用表达式进行三目运算、使用事件修饰符和方法等操作,还新增了通过计算属性以及watch监听的方式,并提及要区分方法与计算属性的差异。

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

DOM

我们在JQ中经常进行DOM操作,但在VUE中其实DOM操作很少,下面进行一些简单的总结

  1. 在DOM元素中利用表达式进行三目运算操作;事件修饰符,方法等。来个栗子
		<div id="app">
            <!-- 函数的参数传递,可以将事件$event作为参数传递到函数中 -->
            <button type="button" name="button" v-on:click="increase(2,$event)">Click me</button>
            <!-- 可以直接在click事件中设置变量值 -->
            <button type="button" name="button" v-on:click="counter++">counter++</button>
            <p>
                {{ counter }} -> {{ counter * 2 }} -> {{ counter * 2 > 10 ? "大于10了" : "小于10呢" }}
            </p>
            <p v-on:mousemove="updateCoordinates">
                Coordinates: {{ x }} / {{ y }}
                - <span v-on:mousemove="dummy">停止鼠标事件</span>
                <!-- 也可以利用.stop来进行操作,则不需要函数支持 -->
                <span v-on:mousemove.stop="">停止鼠标事件</span>
            </p>
            <input type="text" name="name" v-on:keyup="alertMe">
            <br/>
            <!-- 可以限制函数在什么事件下才触发,当前限制的是在enter和space键操作keyup的时候触发alertMe函数 -->
            <input type="text" name="name" v-on:keyup.enter.space="alertMe">
        </div>
		<script type="text/javascript" src="../node_modules/vue/dist/vue.min.js"></script>
        <script type="text/javascript">
            new Vue({
                el: '#app',
                data: {
                    counter:0,
                    x:0,
                    y:0
                },
                methods: {
                    increase: function( step, event ) {
                        this.counter += step;
                    },
                    updateCoordinates:function(event){
                        this.x = event.clientX;
                        this.y = event.clientY;
                    },
                    dummy:function(event){
                        //stopPropagation方法阻止事件冒泡到父元素,阻止任何父事件处理程序被执行
                        event.stopPropagation();
                    },
                    alertMe:function(){
                        alert('Alert');
                    }
                }
            });
        </script>

当然也新增了两种办法,通过计算属性,区别方法与计算属性之间的差异computed
以及watch监听 别说话看栗子

<div id="app">
            <!-- 通过计算属性,区别方法与计算属性之间的差异,操作counter的时候
            ComputedMethod都执行了,而secondCounter的时候却只执行了Computed函数,而且
            Computed的输出模式直接输出属性值即可,不需要函数表现方式。 -->
            <button type="button" name="button" v-on:click="counter++">Increase</button>
            <button type="button" name="button" v-on:click="counter--">Descrease</button>
            <button type="button" name="button" v-on:click="secondCounter--">Increase Second</button>

            <p>
                counter: {{ counter }} | {{ secondCounter }}
            </p>
            <p>
                //第二种方法:
                result:
                {{ result() }} | {{ output }}
            </p>
        </div>
		<script type="text/javascript" src="../node_modules/vue/dist/vue.min.js"></script>
        <script type="text/javascript">
            new Vue({
                el: '#app',
                data: {
                    counter:0,
                    secondCounter:0
                },
                computed:{
                    output:function(){
                        console.log('Computed');
                        return this.counter > 5 ? '大于5了' : '小于5呢';
                    }
                },
				// 利用watch可以对对象内容进行监控操作,但需要注意this对象的不同
				watch:{
					counter:function(value){
                        console.log(value);
						var vm = this;
						setTimeout(function(){
							vm.counter = 0;
						},5000);
					}
				},
                methods: {
                    result(){
                        console.log('Method');
                        return this.counter > 5 ? '大于5了' : '小于5呢';
                    }
                }
            });
        </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值