草庐IT

vue常用指令

jayLog 2023-04-07 原文
  • 常用指令:

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)

有关vue常用指令的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  3. 电脑怎么截图?进来看(8种常用截图方法) - 2

    电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,

  4. (附源码)vue3.0+.NET6实现聊天室(实时聊天SignalR) - 2

    参考文章搭建文章gitte源码在线体验可以注册两个号来测试演示图:一.整体介绍  介绍SignalR一种通讯模型Hub(中心模型,或者叫集线器模型),调用这个模型写好的方法,去发送消息。  内容有:    ①:Hub模型的方法介绍    ②:服务器端代码介绍    ③:前端vue3安装并调用后端方法    ④:聊天室样例整体流程:1、进入网站->调用连接SignalR的方法2、与好友发送消息->调用SignalR的自定义方法 前端通过,signalR内置方法.invoke()  去请求接口3、监听接受方法(渲染消息)通过new signalR.HubConnectionBuilder().on

  5. Unity常用文件夹 - 2

    1.Scenes游戏场景文件夹用于放置unity的场景文件 2.Plugins插件文件夹用于放置unity的依赖文件,例如dll 3.Scripts脚本文件夹用于放置unity的c#脚本文件 4.Resources游戏资源文件夹用于放置unity的各种游戏资源,比如images,prefabs,同时只有放到Resources文件夹的游戏资源才能使用Resource.load(资源路径不加后缀)加载到游戏内存中进行使用 5.EditorUnity编辑器扩展脚本文件夹usingUnityEditor;这个名称空间就是Unity编辑器的名称空间这个名称空间提供了扩展Unity编辑器的各种类 【你所有

  6. 【Linux】初识Linux --指令Ⅰ - 2

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法,Linux…感兴趣就关注我吧!你定不会失望。目录1.ls显示当前目录下的文件内内容2.pwd-显示用户当前所在的目录3.cd-改变工作目录。将当前工作目录改变到指定的目录下1.cd-回到上一次待的工作空间2.cd..返回上一层目录1.相对路径:cd../aurora2.绝对路径:cd/home/aurora/lesson1/aurora3.cd~进入用户家目录4.cd/进入root目录4.mkdir-新建目录5.rmdir/rm-删除1.rmdir删除空文件夹2.rm删除1.rm-f2.rm-i3.rm-r1.ls显示当前目

  7. iOS快捷指令:执行Python脚本(利用iSH Shell) - 2

    文章目录前言核心逻辑配置iSH安装Python创建Python脚本配置启动文件测试效果快捷指令前言iOS快捷指令所能做的操作极为有限。假如快捷指令能运行Python程序,那么可操作空间就瞬间变大了。iSH是一款免费的iOS软件,它模拟了一个类似Linux的命令行解释器。我们将在iSH中运行Python程序,然后在快捷指令中获取Python程序的输出。核心逻辑我们用一个“获取当前日期”的Python程序作为演示(其实快捷指令中本身存在“获取当前日期”的操作,因而此需求可以不用Python,这里仅仅为了演示方便),核心代码如下。>>>importtime>>>time.strftime('%Y-%

  8. vue 实现内容超出两行显示展开更多功能,可依据需求自定义任意行数! - 2

    平时开发中我们经常会遇到这样的需求,在一个不限高度的盒子中会有很多内容,如果全部显示用户体验会非常不好,所以可以先折叠起来,当内容达到一定高度时,显示展开更多按钮,点击即可显示全部内容,先来看看效果图: 这样做用户体验瞬间得到提升,接下来看看具体细节。0">主要操作在内容这里{{item.username}},……展开更多样式大家可依据自己项目需求进行设计,这里就不贴了,主要说几个关键的。1、在data中定义三个属性isShowMore:false, //控制展开更多的显示与隐藏textHeight:null, //框中内容的高度status:false, //内容状态是否打开2.计算内容是否

  9. vue3.0 + vite2.0+如何兼容低版本浏览器 - 2

    这里写自定义目录标题一、问题二、解决三、解决方案四、打包预览一、问题在使用vue3.2和vite2开发一个移动端或者钉钉端H5微服务iosapp内置浏览器打开没问题安卓app内置浏览器打开空白页面vconsole打印出现报错globalthisundefind二、解决内置浏览器版本比较低打印出来是63vue3代码不兼容低版本浏览器三、解决方案步骤一:vite.config.ts里build.target配置项指定构建目标为es2015或者步骤二:安装@vitejs/plugin-legacy安装完报错也还在指定版本可以解决“@vitejs/plugin-legacy”:“1.8.0”,步骤三:

  10. Vue3的新特性 - 2

    Vue3的新特性包括:CompositionAPI:一种新的API风格,可将有关组件功能的代码逻辑封装在单独的函数中,从而更好地管理和重用代码。Teleport:可以让组件在DOM层次结构中的任何位置渲染。Suspense:一种新的异步渲染模式,可以优化应用程序的性能。更快的渲染速度:Vue3使用了新的虚拟DOM算法,并且对渲染过程进行了优化,因此在渲染大型应用时性能更高。更小的包大小:Vue3的打包大小比Vue2更小,因为它不再需要依赖像vue-template-compiler这样的工具。其他改进:Vue3还具有其他一些改进,例如更好的TypeScript支持、更好的错误提示和更好的调试工

随机推荐