Vue中的指令与自定义指令

news2025/2/21 20:12:40

目录

Vue中的指令

v-xxx指令汇总

v-text

 v-html

v-cloak

v-once

 v-pre

 自定义指令

函数式

对象式


Vue中的指令

v-xxx指令汇总

之前学过的指定:

v-bind :单向绑定解析表达式,可简写为:xxx

v-model :双向数据绑定

v-for  :遍历数组、对象、字符串等

v-on  :绑定事件监听,可简写为@

v-if    :条件渲染(动态控制结点是否存在)

v-else   :条件渲染(动态控制结点是否存在)

v-show  :条件渲染(动态控制结点是否展示)

v-text 指令:向其所在的结点中渲染文本内容,与插值值的区别是,v-text会替换掉结点中的内容

v-html指令 :向其所在的结点中渲染文本内容,可以识别html语法,注:v-html存在安全性问题,在网站上动态渲染任意html是有危险的,容易导致xss攻击,尽量不要在用户的输入框使用v-html。

v-cloak指令(没有值):本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性,配合cssv-cloak可以解决网速慢时页面展示出{{xxx}}的问题

v-once指令:v-once所在的结点在初次动态渲染后,就视为静态内容了。以后数据的改变不会引起v-once所在的结构更新。

v-pre指令:跳过器所在结店的编译,可利用他跳过没有使用指令语法、没有使用差值语法的街第三,vue不会解析他,直接使用到页面,加快编译

v-text

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--vue-->
    <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>

</head>

<div id="root">
插值语法:<div>{{name}}</div>
v-text指令:<div v-text="name"></div>
v-text指令:<div v-text="name">abc</div>
</div>
<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            name:'hello'
        }
    });
    console.log(vm)

</script>

 v-html

<div id="root">
v-text:<p v-text="name"></p>
v-text:<p v-text="htmlName"></p>
v-html:<p v-html="htmlName">你好</p>
</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            name:'世界杯',
            htmlName:'<h2>世界杯2</h2>'
        }

    });
</script>

v-cloak

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--vue-->
    <script src="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>

    <style>
        [v-cloak]{
            display: none;
        }
    </style>
</head>

<div id="root">
<div v-cloak>{{name}}</div>
</div>

v-once


<div id="root">
<div v-once>初始的n值为:{{n}}</div>
<div>之后的n值为:{{n}}</div>
    <button @click="n++">n++</button>
</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            n:10,
        },
        methods: {}

    });
    console.log(vm)

</script>

 v-pre


<div id="root">
<div>{{cool}}</div>
<div v-pre>{{cool}}</div>
</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            cool:'天气只有十来度'
        },

    });

</script>

 自定义指令

函数式

定义一个v-big指令,和v-text功能类似,但会吧绑定的数值放大10倍

</head>

<div id="root">
    <div v-text="n" ></div>
    <div v-big="n"></div>
    <button @click="n++">n++</button>
</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            n:1,
        },
        directives:{
            big(element,binding) {
                element.innerText=binding.value*100
            }
        }
    });
    console.log(vm)

</script>

对象式

需求:定义个v-fousbind指令,和v-bind功能类式,但可以让其所绑定的inout元素默认获取焦点


<div id="root">
    <div>n的值为:{{n}}</div>
<input type="text" v-fousbind="n" value="n"></input>
<button @click="n++">n++按钮</button>
</div>


<script type="text/javascript">
    const vm = new Vue({
        el: '#root',
        data: {
            n:1
        },
        directives:{
            fousbind:{
                //指令与元素成功绑定时(一上来)
                bind(element,binding){
                    element.value=binding.value
                },
                //指令所在元素被插入页面时
                inserted(element,binding){
                    element.focus()
                },
                //指令所在的模版被重新解析时
                update(element,binding){
                    element.value=binding.value
                    element.focus()
                }
            }
        }

    });
    console.log(vm)

</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】Python进阶系列教程-- Python3 CGI编程(二)

文章目录 前言什么是CGI网页浏览CGI架构图Web服务器支持及配置第一个CGI程序HTTP头部CGI环境变量GET和POST方法使用GET方法传输数据简单的表单实例&#xff1a;GET方法使用POST方法传递数据通过CGI程序传递checkbox数据通过CGI程序传递Radio数据通过CGI程序传递 Textarea 数据通…

展会ING丨计讯物联在中国水博览会大放异彩,现场人气持续狂飙

6月7日&#xff0c;由中国水利学会和中国水利工程协会联合打造的的2023中国水博览会暨第十八届中国&#xff08;国际&#xff09;水务高峰论坛于江苏南京国际展览中心盛大举行&#xff0c;超过40多个国家和地区的2450余家展商如约而至&#xff0c;超24万人次的专业观众齐聚一堂…

PLC与IO模块之间搭建1主多从网口无线通讯

想实现西门子PLC通过网口无线采集多处分散IO信号&#xff0c;实际上就是&#xff0c;在Profinet通讯协议下&#xff0c;通过RJ45口&#xff0c;搭建一个西门子PLC与IO模块之间1主多从的无线以太网通讯网络。我们就需要以下几种设备来搭建无线网络&#xff1a; 1.西门子PLC&…

线程池源码解读及原理

前言 大龄程序员老王 老王是一个已经北漂十多年的程序员&#xff0c;岁数大了&#xff0c;加班加不过年轻人&#xff0c;升迁也无望&#xff0c;于是拿着手里的一些积蓄&#xff0c;回老家转行创业。他选择了洗浴行业&#xff0c;开一家洗浴中心&#xff0c;没错&#xff0c;一…

手把手教你突破 GPT-4.0 3小时25次的限速!

很多人很郁闷 &#xff0c;ChatGPT Plus账号在浏览器上使用GPT4.0模型的时候&#xff0c;会受到官方的限制&#xff0c;每3小时只能对话25次&#xff0c;是真的不够用。 但是在手机上使用GPT4.0模型则不会有限制&#xff0c;既然这样&#xff0c;那我们是否也可以在浏览器上无限…

gitlab安装脚本

[rootVM-4-4-centos ~]# cat install_gitlab.sh #!/bin/bash# #说明:安装GitLab 服务器内存建议至少4G,root密码至少8位 GITLAB_VERSION12.0.2#GITLAB_VERSION14.1.7#GITLAB_VERSION12.3.5. /etc/os-release UBUNTU_URL"https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/u…

分子生成工具 TargetDiff 评测

TargetDiff是来源于ICLR2023文章&#xff1a;3D Equivariant Diffusion for Target-Aware Molecule Generation and Affinity Prediction。该文章基于 SE(3)-equivariant network&#xff0c;开发了非自回归的&#xff0c;具有旋转和平移不变性的&#xff0c;口袋为条件的分子扩…

CRM系统排行榜TOP10——2023年度

在当今竞争激烈的市场环境中&#xff0c;CRM客户系统是企业必备的管理工具&#xff0c;它可以帮助企业管理客户数据&#xff0c;优化业务流程&#xff0c;实现业绩增长。那么有哪些优秀的CRM系统呢&#xff1f;下面请看全球2023年CRM管理系统十大排行榜。 全球2023年CRM管理系…

驱动开发:内核文件读写系列函数

在应用层下的文件操作只需要调用微软应用层下的API函数及C库标准函数即可&#xff0c;而如果在内核中读写文件则应用层的API显然是无法被使用的&#xff0c;内核层需要使用内核专有API&#xff0c;某些应用层下的API只需要增加Zw开头即可在内核中使用&#xff0c;例如本章要讲解…

2023/06/05 软件项目生存期和传统生存期模型

视频参考地址&#xff1a; B站闫波软件项目管理视频学习. 视频资源&#xff1a;video P4-P6 本篇重点&#xff1a;项目生存期 简书日更计划同步记录&#x1f3c3;… 项目生命周期 软件项目生命周期 ∗ \color{red}{*} ∗ 项目生命周期的阶段 C概念/启动阶段&#xff1a;确立项…

VRay 版本之间的差异,为什么最新版本的 VRay 渲染不同?

如果您是 V-Ray 的长期用户&#xff0c;您可能已经注意到&#xff0c;您使用早期版本的 V-Ray 构建的一些项目与更高版本的渲染方式不同。有时差异不明显&#xff0c;有时则非常明显。您可能还会注意到渲染时间、内存消耗等方面的差异。 为什么最新版本的 V-Ray 渲染不同&…

SQL注入防御-WAF Bypass技巧(5)

0x00前言 X-WAF是一款适用中、小企业的云WAF系统,让中、小企业也可以非常方便地拥有自己的免费云WAF. 本文从代码出发,一步步理解WAF的工作原理,多姿势进行WAF Bypass。 0x01 环境搭建 官网: https://waf.xsec.io github源码: https://github.com/xsec-lab/x-waf X-WAF下载安…

电子器件系列40:高压放电电阻(绕线电阻)

高压电阻器工作原理 高压电阻器是指在1000〜35000伏的高压下工作的电阻&#xff0c;其电阻值最高为1011欧姆。为了能够承受很高的电压&#xff0c;高压电阻器必须具有较高的电阻值和较大的功耗。为了防止电击穿&#xff0c;必须选择具有高抗压强度的细长基板&#xff0c;电阻膜…

可商用!全球首个基于Falcon架构的中文大语言模型OpenBuddy开源了!

在人工智能领域&#xff0c;大语言模型正以前所未有的速度发展&#xff0c;它们已经成为众多企业、研究机构和个人开发者的新宠。今天&#xff0c;OpenBuddy&#xff0c;这个由业界的开源爱好者和学术研究者组成的研究团队&#xff0c;正式宣布研发出全球首个基于 Falcon 架构、…

php开发中大数据量优化的问题总结(1):smarty循环优化、API掉包丢失数据排查、负载平衡配置

php开发中大数据量优化的问题总结 一、smarty模版引擎遍历优化1.项目需求2.解决方案 二、对接第三方API掉包丢失数据1.丢包和掉包2.解决和排查3.配置负载均衡命令行宝塔配置 一、smarty模版引擎遍历优化 模版引擎smarty中不规则遍历循环的解决方案(遍历数组、第一个元素单独处…

Windows操作命令

1.查看端口占用 netstat -aon | findstr "端口号"2.查看指定 PID 的进程 tasklist | findstr "PID"3.结束进程 1.强制&#xff08;/F参数&#xff09;杀死 pid 为 4724 的所有进程包括子进程&#xff08;/T参数&#xff09;taskkill /T /F /PID 4724

果蔬识别系统Python+Django+TensorFlow+卷积神经网络算法

一、介绍 果蔬识别系统&#xff0c;使用Python作为主要开发语言&#xff0c;基于深度学习TensorFlow框架&#xff0c;搭建卷积神经网络算法。并通过对数据集进行训练&#xff0c;最后得到一个识别精度较高的模型。并基于Django框架&#xff0c;开发网页端操作平台&#xff0c;…

一文说清,4G语音工牌与WIFI和蓝牙语音工牌的区别

作为一种创新的无线音频采集和传输设备&#xff0c;4G语音工牌在许多行业和领域都展现出了巨大的优势和广泛的应用场景。 比如在销售场景和服务场景&#xff0c;利用4G语音工牌和NLP、语音识别、机器学习等技术结合&#xff0c;可实现&#xff1a; 帮销售型企业&#xff1a;提…

西门子PLC通过网口无线采集多处分散IO信号

想实现西门子PLC通过网口无线采集多处分散IO信号&#xff0c;实际上就是&#xff0c;在Profinet通讯协议下&#xff0c;通过RJ45口&#xff0c;搭建一个西门子PLC与IO模块之间1主多从的无线以太网通讯网络。我们就需要以下几种设备来搭建无线网络&#xff1a; 1.西门子PLC&…

41从零开始学Java之向上转型与向下转型是怎么回事?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 面向对象的第三个特征是多态&#xff0c;实现多态有三个必要条件&#xff1a;继承、方法重写和向上转…