vue常用指令

发布时间:2023-11-25 18:00

  • 常用指令:

vue常用指令有:v-once指令、v-show指令、v-if指令、v-else指令、v-else-if指令、v-for指令、v-html指令、v-text指令、v-bind指令、v-on指令、v-model指令等等。

  1. v-once

    只会执行一次渲染,当数据发生改变时,不会再变化

    <div id="app">
        <p v-once>{{msg}}</p>
        <input v-model="msg" type="text" />
    </div>
    <script>
        let vue = new Vue({
            el:"#app",
            data:{
                msg:'今天气温'
            }
        })
    </script>
    

\"请添加图片描述\"

  1. v-show

    v-show接受一个表达式或一个布尔值。相当于给元素添加一个display属性

    <div id="app">
        <div v-show="conditional ==  'ok' ">{{msg}}</div>
        <input v-model="msg" type="text" />
    </div>
    <script>
        let vue = new Vue({
            el:"#app",
            data:{
                msg:'今天气温',
                conditional:'ok'
            }
        })
    </script>
    
  2. v-if、v-else、v-else-if

    v-if和v-show有同样的效果,不同在于v-if是重新渲染,而v-show使用display属性来控制显示隐藏。频繁切换的话使用v-show减少渲染带来的开销。

    说明一下:v-if可以单独使用,而v-else-if,v-else必须与v-if组合使用

    v-if、v-else-if都是接受一个条件或布尔值,v-else不需要参数。比较简单,看看案例:

    <div id="app">
       	<div>
           小明评级为:<span v-if="score >= 90">优秀</span>
           <span v-else-if="score >= 80">良好</span>
           <span v-else-if="score >= 60">及格</span>
           <span v-else>不及格</span>
        </div>
    </div>
    <script>
         new Vue({
            el:"#app",
            data:{
                msg:'message',
                score:59,  
            },
        })
    </script>
    

    \"请添加图片描述\"

  3. v-for

    v-for可用来遍历数组、对象、字符串。

    <div id="app">
        <!-- obj -->
        <div v-for="(att,val) in obj">
            {{att}}:{{val}}
        </div>
        <!-- arr -->
        <div v-for="(val, index) in arr">
            {{index}}:{{val}}
        </div>
        <!-- string -->
        <div v-for="astr in str">
            {{astr}}
        </div>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                obj:{
                    name:'kk',
                    age:'18',
                    hobby:'pingpong'
                },
                arr:[
                    1,2,3,4,4,5,6,7
                ],
                str:'str hello world'
            },
        })
    </script>
    

\"请添加图片描述\"

  1. v-text和v-html

    v-text是渲染字符串,会覆盖原先的字符串

    v-html是渲染为html。{{}}双大括号和v-text都是输出为文本。那如果想输出为html。使用v-html,如下例子

    <div id="app">
        <div>{{innerHtml}}</div>
        <div v-text="innerHtml"></div>
        <div v-html="innerHtml"></div>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                innerHtml:'<button>一个按钮</button>'
            }
        })
    </script>
    

    效果:
    \"请添加图片描述\"

  2. v-bind

    是用可以将标签内的属性值解析成js代码,在标签的属性中使用v-bind,双引号里的内容会被当作js解析(只能解析变量或三元表达式),如下:
    如果给属性值设置为一个变量,那么可以使用v-bind
    可以缩写为:<属性>="<变量>"

     <div id="app">
         <!-- 完整写法 v-bind: -->
         <div v-bind:class="className">"{{innerHtml}}"</div>
         <!-- 缩写 : -->
         <div :class="className">"{{innerHtml}}"</div>
         <div v-text="innerHtml"></div>
         <div v-html="innerHtml"></div>
    </div>
    <script>
        new Vue({
            el:"#app",
            data:{
                innerHtml:'<button>一个按钮</button>',
                className:'box'
            }
        })
    </script>
    

    效果:
    \"请添加图片描述\"

  3. v-on

    v-on用于事件绑定

    语法: v-on:<事件类型>="<函数名>"
    简写:@<事件类型>="<函数名>"

    <body>
        <div id="app">
            <!-- 完整写法 v-on: -->
            <div v-on:click="clickfunc">点击事件</div>
            <!-- 缩写 @ -->
            <div @click="clickfunc">点击事件</div>
        </div>
    </body>
    <script>
        new Vue({
            el:"#app",
            data:{
            },
            methods:{
             // 定义一个 点击函数   
                clickfunc:function(){
                    console.dir('click event')
                }    
            },
        })
    </script>
    

效果如下 :
\"请添加图片描述\"

  1. v-model

    数据双向绑定指令,限制在 <input>、<select>、<textarea>、components中使用
    语法: v-model="<变量名>"

    <body>
        <div id="app">
            <div>val的值:{{val}}</div>
            <div>val的值:{{val}}</div>
            <input v-model="val">
        </div>
    </body>
    <script>
        new Vue({
            el:"#app",
            data:{
                val:'success'
            }
        })
    </script>
    

    \"请添加图片描述\"

    文章参考资料:【vue常用指令有哪些】(https://www.php.cn/vuejs/464673.html)

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号