Vue.js 第六节:模板语法-指令 复现

指令

指令(Directive)是带有v-前缀的特殊特性。指令特性的预期值是单个javascript的表达式。
当表达式的值发生改变是,将其产生的连带影响。响应式作用于DOM。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <script src="vue.js"></script>
    </head>
    <body>
        <div id='app'>
            <p v-if="seen">你可以看见我吗?</p>
        </div>
        <script type="text/javascript">  
            var vm = new Vue({
                el:'#app', 
                data: {
                   seen:true,//能够被看见
                   seen:false,//不能够被看见
                }
            }) 
        </script>
    </body>
</html>

#参数
一些指令能够接收一个“参数”,在指令名称之后用冒号(:)表示,例如v-bind指令可以响应式的更新HTML特性:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <script src="vue.js"></script>
    </head>
    <body>
        <div id='app'>
            <a v-bind:href="url" >click me!</a>
        </div>
        <script type="text/javascript">  
            var vm = new Vue({
                el:'#app', 
                data: {
                    url:"https://cn.vuejs.org/v2/guide/syntax.html",
                }
            }) 
            vm.url = "https://www.csdn.net/";//未添加该行将进入vue.js官网;添加后地址属性值跟新,跳转到CSDN首页。
        </script>
    </body>
</html>

#修饰符
修饰符(modifier)以半角句号.指明的特殊后缀,用于指出一个指令应该以特殊的方式绑定。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
        <script src="vue.js"></script>
    </head>
    <body>
        <div id='app'>
            <div @click="click1">
                <!-- 用@click绑定点击事件,用代码中的methods属性初始化定义 -->
                <div @click="click2">
                    click me!
                </div>
            </div>
        </div>
        <script type="text/javascript">  
            var vm = new Vue({
                el:'#app', 
                data: {
                    },
                methods:{
                    click1: function(){
                        console.log('click1');
                    },
                    click2: function(){
                        console.log('click2');
                    }
                },
            }) 
        </script>
    </body>
</html>

在控制台中我们可以看到,点击click2事件是会触发click1事件
在这里插入图片描述
但在开发时,我们常不希望触发click1事件,故可对其添加修饰符,即在@click后添加.stop的修饰符;

            <div @click="click1">
                <!-- 用@click绑定点击事件,用代码中的methods属性初始化定义 -->
                <div @click.stop="click2">
                    click me!
                </div>
            </div>

可以在控制台观测到结果,触发click2事件后不再触发click1事件。
在这里插入图片描述

发布了10 篇原创文章 · 获赞 0 · 访问量 167

猜你喜欢

转载自blog.csdn.net/yjj510818155/article/details/104677028