首页 > 其他分享 >Vue的常见指令及用法案例

Vue的常见指令及用法案例

时间:2024-07-04 12:59:48浏览次数:22  
标签:count el Vue vue app 用法 指令 data

Vue会根据不同的标签指令,实现不同的功能。

指令:指的是带有v-前缀的的特殊标签属性。

我们常见的vue指令有:

1.v-html:类似于js中innerHTML,用于设置元素的HTML。案例如下:

 <div id="app">
     <div v-html="msg"></div>
     <div v-html="h"></div>
        
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
                msg: '<a href="https://www.baidu.com">百度</a>',
                h:'<h1>标签</h1>'
            }
        })
    </script>

注意如data里面属性的值为html标签注意用单引号括起来。

2.v-on:用来注册监听事件,为了方便编写v-on可用@代替。v-on有两种用法,一个是内联函数,当我们的处理逻辑简单是可以用内联函数,如下:

<div id="app">
       <button @click="count++">+</button>
       {{count}}
       <button @click="count--">-</button>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
                    count:100
            },
            
        })
    </script>

 

 点击加按钮

 点击减按钮

第二种用发就是当我们的处理逻辑复杂时我们可以通过data里面的methods属性里面写我们的处理逻辑,案例如下:

 <div id="app">
       <button @click="fuadd()">+</button>
       {{count}}
       <button @click="funj()">-</button>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
                    count:100
            },
            methods:{
                fuadd(){
                    this.count = this.count*2;
                },
                funj(){
                    this.count = this.count/2
                }
            }
            
        })
    </script>

 

 

 

v-on还可以调用参数,案例如下:

<div id="app">
     <button @click="fu(nn)">牛奶{{10}}元</button>
     <button @click="fu(jd)">鸡蛋{{5}}元</button>
     <div>余额:{{yuer}}</div>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
                    yuer:100,
                    nn:10,
                    jd:5
            },
            methods:{
               fu(x){
                this.yuer = this.yuer-x;
               }
            }
            
        })
    </script>

 

 

3.v-show和v-if:这两个指令都是用来控制元素的显示和隐藏,但应用场景和底层原理不同,v-show的底层原理是通过控制css的display:none来实现元素的显示于隐藏的,而v-if则是通过控制元素的创建与移除来实现元素的隐藏和显示的。v-show适用于经常显示与隐藏的场景而v-if则适用于不经常显示与隐藏的场景。案例如下:

 <div id="app">
        <button  @click="fu()">切换显示与隐藏</button>
     <div v-show="isShow">v-show控制</div>
     <div v-if="isShow">v-if控制</div>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
                    isShow:true
            },
            methods:{
                fu(){
                   this.isShow=!this.isShow;
                }
            }
        })
    </script>

 

未隐藏时:

隐藏后:

由此可看出v-if和v-show的底层原理的不同。

4.v-if和v-else和v-else if的联合用法:使用v-else和v-else if时必须使用v-if,案例如下:

<div id="app">
      <div>小明的成绩是:{{count}}</div>
      <div v-if="count>90">小明的等级是:A</div>
      <div v-else-if="count > 70 && count <= 90">小明的等级是:B</div>
    <div v-else-if="count > 60 && count <= 70">小明的等级是:C</div>
      <div v-else>小明的等级是:D</div>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
                    count:94
            },
            methods:{
               
            }
            
        })
    </script>

 

注意Vue.js中不支持链式的写发如:70>count>60这种写法是不允许的。

5.v-bind:可以用来动态地绑定 HTML 元素的属性,例如 hrefsrcclassstyle 等。它可以简写为冒号 :。案例如下:

   <div id="app">
        <a :href="tbUrl">淘宝</a>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
              
                  tbUrl:'https://www.taobao.com/'
            },
            methods:{
            
            }
            
        })
    </script>

 

6.v-for:v-for用来渲染元素,必须加上key值。案例如下:

<div id="app">
       <div v-for="(item,index) in list" :key="item.id">{{item}}</div>
    </div>
    <!-- 引包 -->
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
    <script>
        //创建vue实例
        const app = new Vue({
            el:'#app',//通过el配置选择器,即选择容器
            data:{      //通过data提供渲染数据
              
                  list:[
                    '苹果','牛奶','香蕉'
                  ]
            },
            methods:{
            
            }
            
        })
    </script>

 

7.v-model:实现文本框的双向绑定。

 

点击登录按钮后:

点击重置按钮后:

以上就是Vue常用指令及用法案例,希望能帮助到有需要的人。

 

标签:count,el,Vue,vue,app,用法,指令,data
From: https://blog.csdn.net/qq_63044079/article/details/140123995

相关文章

  • Echarts中的折线图,多个Y轴集中在左侧(在Vue中使用多个Y轴的折线图)
    简述:在ECharts中,创建一个带有多个Y轴的折线图,并且将这些Y轴都集中显示在图表的左侧,可以通过合理配置yAxis和series的属性来实现。简单记录一.函数代码drawCarNumEcs(){//初始化echarts图表,并绑定到id为"cfog_four"的DOM元素上varmyChart=this.$ec......
  • vue 运行npm run serve 出现 Starting development server... ERROR ValidationErro
    解决方式:报错信息不完整,但从给出的部分来看,这个错误与Webpack的进度插件(ProgressPlugin)有关。ValidationError:ProgressPluginInvalid表明进度插件配置无效或者不正确。解决方法:检查Webpack配置文件中是否正确引入并配置了进度插件。确保进度插件的使用方法符合最新版本的......
  • vue+openlayers之几何图形交互绘制基础与实践
    文章目录1.实现效果2.实现步骤3.示例页面代码3.基本几何图形绘制的关键代码1.实现效果绘制点、线、多边形、圆、正方形、长方形2.实现步骤引用openlayers开发库。加载天地图wmts瓦片地图。在页面上添加几何图形绘制的功能按钮,使用下拉列表(select)设置几何图形绘制......
  • 掉了两根头发后,我悟了!vue3的scoped原来是这样避免样式污染(下)
    前言在上一篇掉了两根头发后,我悟了!vue3的scoped原来是这样避免样式污染(上)文章中我们讲了使用scoped后,vue是如何给CSS选择器添加对应的属性选择器[data-v-x]。这篇文章我们来接着讲使用了scoped后,vue是如何给html增加自定义属性data-v-x。注:本文中使用的vue版本为3.4.19,@vitejs/......
  • vue3+node.js+mysql+electron+express实现用户登录,文章写入删除,全量更新,增量更新,和截
    第一件事情是安装node.js,去官网下,在终端node-v,npm-v有版本号就行了,不必搞环境配置,保姆级别教程,感谢哥有时间。嘻嘻,祝大家开心。1.首先你要创建electron项目打开vscode,新建终端输入代码npminit这个代码是初始化的意思会生成一个文件package.json里面的代码应该是这......
  • 基于SpringBoot+Vue+基于微信小程序的音乐播放器系统设计和实现(源码+LW+部署讲解)
    博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P......
  • springboot+vue前后端分离项目-项目搭建7-菜单显示权限控制
    1.user表增加role,entity同步增加  2.controller增加通过id获取user信息并返回的方法 3.增加如下从session获取user的id,并重新从后台再获取一遍确保正确 控制菜单,系统管理只有管理员(role=1)时才能看到 效果:  ......
  • Vuex 核心揭秘:打造高效前端状态库
    引言Vue.js是一个流行的JavaScript框架,以其简洁的设计和易用的特性赢得了开发者的青睐。它允许开发者通过声明式的方式编写前端代码,从而提高开发效率。Vuex是Vue.js的官方状态管理库,它为Vue应用提供了一个中心化存储,使得所有组件都能够访问和更新共享状态。这对于大......
  • Vue技巧大揭秘:自定义指令的力量与应用
    引言自定义指令就像是给予开发者的一把魔法钥匙,它能够打开DOM操作的新世界,按我的理解就是把对DOM操作的逻辑进行封装全局注册与局部注册全局注册定义: 全局注册意味着自定义指令在Vue实例创建之前通过Vue.directive()方法注册,一旦注册,就可以在任意组件的模板中使用该指令。......
  • vue3 toref ref toRow unref等等使用和功能测试
    代码测试js代码constrowData=reactive({nameAbc:'sdfsdf'})console.log(rowData,"rowData")letrowDataValue=toRaw(rowData);console.log(rowDataValue,"rowdatavalue")//toRefs使对象本身转为普通对象,但是子属性全部转为refvalue方式//toRef......