vue语法详解

news2024/11/16 23:40:13

以下页面就是用vue开发的

 

模板语法

注意

模板语法不能在标签属性中用

文本插值

{{ msg }}

使用JavaScript表达式

{{ number + 1 }}

{{ ok ? 'YES' : 'NO' }}

{{ message.split('').reverse().join('') }}

使用HTML

双大括号将会将数据插值为纯文本,而不是HTML,若想插入 HTML,你需要使用v-html 指令

rawHtml:"html内容..."

<span v-html="rawHtml"></span>

使用计算属性

{{ reverse }}

const reverse = computed(() =>{return message.value.split("").reverse().join("")})

使用方法

{{ reverse() }}

const reverse = computed(() =>{return message.value.split("").reverse().join("")})

计算属性和方法的区别:

计算属性:计算属性值会基于其响应式依赖被缓存。一个计算属性仅会在其响应式依赖更新时才重新计算

方法:方法调用总是会在重渲染发生时再次执行函数

模板引用

简介

虽然Vue的声明性渲染模型为我们抽象了大部分对DOM的直接操作,但在某些情况下,我们仍然需要直接访问底层 DOM 元素

要实现这一点,我们可以使用特殊的 ref attribute

使用

<p ref="message">组合式API-模板引用</p>

const message = ref(null)// 声明一个 ref 来存放该元素的引用,必须和模板里的 ref 同名

onMounted(() =>{

message.value.innerHTML = "组合式API-模板引用-修改"

})

<div ref="container">容器</div>

console.log(this.$refs.container);

事件

绑定事件

v-on:click="handler"

简写:@click="handler"

分类

内联事件处理器:事件被触发时执行的内联 JavaScript 语句 (与 onclick 类似)

<button @click="count++">Add 1</button>

方法事件处理器:一个指向组件上定义的方法的属性名或是路径

<button @click="addCount">Add</button>

function addCount(){count.value++}

传参

<button @click="addCount('hello')">Add</button>

event对象

无参获取:

getNameHandle(e){}

传参获取:

<p @click="getNameHandle(item,$event)" ></p>

getNameHandle(name,e){}

事件修饰符

参考文档

阻止默认事件:@click.prevent="clickHandle"

阻止事件冒泡:@click.stop="clickP"

属性绑定

基本使用 

<div v-bind:id="dynamicId" v-bind:class="dynamicClass">AppID</div>

简写:<div :id="dynamicId" :class="dynamicClass"></div>

表单输入绑定 

输入框:<input type="text" v-model="message">

复选框:单一的复选框,绑定布尔类型值

修饰符:v-model也提供了修饰符:.lazy、.number、.trim

.lazy:默认情况下,v-model会在每次input事件后更新数据,你可以添加lazy修饰符来改为在每次change事件后更新数据

布尔型属性 

<button :disabled="isButtonDisabled">Button</button>

动态绑定多个值 

objectOfAttrs: {id: 'container',class: 'wrapper'}

<div v-bind="objectOfAttrs">动态绑定多个值</div>

:class增强

Vue专门为class的v-bind用法提供了特殊的功能增强
绑定对象::class="{ active: isActive,'text-danger': hasError }"
多个对象绑定::class="classObject"
绑定数组::class="[activeClass,errorClass]"
三元表达式::class="[isActive ? 'active' : '']"
数组和对象::class="[{ 'active':isActive }, errorClass]"

:style增强 

Vue专门为style的v-bind用法提供了特殊的功能增强
绑定对象::style="{ color: activeColor, fontSize: fontSize + 'px' }"
绑定数组: :style="[baseStyles]"

条件/列表渲染

条件渲染

v-if【v-show】
v-else-ifv-else

v-if和v-show的区别
v-if 是“真实的”按条件渲染,因为它确保了在切换时,条件区块内的事件监听器和子组件都会被销毁与重建。
v-if 也是惰性的:如果在初次渲染时条件值为 false,则不会做任何事。条件区块只有当条件首次变为 true 时才被渲染。
相比之下,v-show 简单许多,元素无论初始条件如何,始终会被渲染,只有 CSS display 属性会被切换。
总的来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要频繁切换,则使用 v-show 较好;如果在运行时绑定条件很少改变,则 v-if 会更合适

列表渲染

v-for:遍历数组,(item,index) in/of items
:key:唯一标志【key在这里是一个通过v-bind绑定的特殊属性】

<div v-for="(user,index) in users" :key="index">
    {{ user.username }}:{{ user.age }}
</div>
          

自定义指令

局部自定义指令【.vue】

<p v-author>文本信息</p>
const vAuthor = {
mounted:(element) =>{
element.innerHTML = element.innerHTML + "-itbaizhan"
}
}

全局自定义指令【main.js】

app.directive("red",{
mounted(element){
element.style.color = 'red'
}
})

<p v-red>红色效果</p>

侦听器

简介 

我们可以使用 watch 选项在每次响应式属性发生变化时触发一个函数

示例 

{{ count }}
const count = ref(0)
watch(count,async(newValue,oldValue) =>{console.log(newValue,oldValue);})  

数组变化侦测

简介 

vue提供响应式数组的变更方法:push()/pop()/shift()/unshift()/splice()/sort()/reverse()...

使用

示例数据:names:["iwen","ime","frank"]
添加数组:this.names.push("sakura")
合并数组:this.nums1 = this.nums1.concat(this.nums2)

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

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

相关文章

Apikit 自学日记:测试数据集

测试数据集 添加数据集的变量 在测试用例详情页面中&#xff0c;您可以点击上方的 测试数据 标签&#xff0c;进入用例的数据管理页面。在这里您可以添加多组测试数据&#xff0c;以及每组测试数据的变量。 在添加数据集前&#xff0c;我们需要设置数据集中存在什么变量。可以…

Qt:记录一下好看的配色

qss代码 窗体背景色 background-color: #ED6927; border-top-left-radius:35px;border-top-right-radius:35px;border-bottom-right-radius:0px; border-bottom-left-radius:0px;background-color: #203A32; border-radius:35px; border-top-left-radius:0px;border-top-righ…

如何用一部手机进行人体全身三维扫描

人体建模的应用真的是涵盖到了我们生活中的方方面面&#xff0c;真人潮玩、服饰定制、医疗康复、3D数字人等等领域&#xff0c;都离不开人体建模。 提到给人体建模&#xff0c;大家脑海里第一个浮现的画面&#xff0c;大多会是坐在电脑屏幕前&#xff0c;打开某个熟悉的建模的…

从本地目录和S3目录生成Classpath字符串的最佳实践

从一个目录生成Classpath字符串是一个非常常见的问题&#xff0c;在使用命令提交一个Java、Spark作业时会经常遇到。通常遇到的遇到情况是&#xff1a;将本地目录下的Jar文件拼接成一个Classpath字符串&#xff0c;这时&#xff0c;通常我们可以使用这样的命令&#xff1a; sp…

《八角笼中》电影我表达不出的好

昨天看完王宝强主演的《八角笼中》内心久久不能平静&#xff0c;里面有很多触动我的点&#xff0c;如果是写作高手&#xff0c;一定能从这部影片中捕捉到很多可写的话题。其实我也有&#xff0c;只是一直在思索要如何定主题&#xff0c;把内心深处那些想法表达出来&#xff0c;…

【HDC.Cloud 2023】华为云区块链分论坛内容值得再读!

Web3是全新的互联网世界&#xff0c;它不仅仅是一个技术革新&#xff0c;更是一种新的生态系统。在这个新的生态系统中&#xff0c;区块链技术、去中心化应用、智能合约等技术被广泛应用&#xff0c;为人们带来了更加安全、透明、去中心化的互联网体验。 然而&#xff0c;Web3的…

底层的出路,就在突破多重“八角笼”

底层的出路&#xff0c;就是突破“八角笼” “八角笼”隐喻是&#xff1a;出生地域&#xff0c;出生家庭&#xff0c;教育机会限制&#xff0c;权力网络&#xff0c;知识和技能的限制&#xff0c;资源的网络&#xff0c;机会…… 趣讲大白话&#xff1a;突破困局&#xff0c;精…

VoxPose:零样本训练机器人听你的话

VoxPoser是一种从大型语言模型&#xff08;LLMs&#xff09;中提取机器人操纵的可供性和约束的方法&#xff0c;它不需要额外的训练&#xff0c;并且可以泛化到开放集的指令。 地址&#xff1a;VoxPoser 它利用LLMs的编码能力&#xff0c;与视觉语言模型&#xff08;VLMs&…

快使用双截棍 | 低码之连接器 元服务开发的奇门武器

AppGallery Connect&#xff08;以下简称AGC&#xff09;低代码服务是一个基于Serverless的低代码开发平台&#xff0c;可通过拖拽式开发&#xff0c;可视化配置构建元服务。打通HarmonyOS云侧与端侧能力&#xff0c;轻松实现HMS Core和AGC Serverless能力的调用&#xff0c;宛…

基于matlab校正亮度不均匀问题并分析前景对象(附源码)

一、前言 此示例说明如何在分析前的预处理步骤增强图像。在此示例中&#xff0c;您可以校正背景亮度不均匀问题&#xff0c;并将图像转换为二值图像&#xff0c;以便于识别前景对象&#xff08;单个米粒&#xff09;。然后&#xff0c;您可以分析对象&#xff0c;例如计算每粒…

【剑指offer】学习计划day3

​​​​​​​ 目录 一. 前言 二.替换空格 a.题目 b.题解分析 c.AC代码 三. 左旋转字符串 a.题目 b.题解分析 c.AC代码 一. 前言 本系列是针对Leetcode中剑指offer学习计划的记录与思路讲解。详情查看以下链接&#xff1a; 剑指offer-学习计划https://leetcode.cn/stud…

多线程(3): 线程同步

1. 互斥锁的加锁和解锁 1.1 加锁解锁说明 在处理线程同步时&#xff0c;第一种方式就是使用互斥锁。互斥锁只能同时被一个线程使用&#xff0c;锁的所有权只能被一个线程拥有。互斥锁是线程同步最常用的一种方式&#xff0c;通过互斥锁可以锁定一个代码块 &#xff0c;被锁定…

23款奔驰S450 4MATIC更换原厂旋转高音,提升车内氛围感

奔驰加装3D旋转高音&#xff0c;让高音“有型有色”,高端3D环绕立体声音响系统的视觉效果同样令人印象深刻&#xff1a;系统启动时&#xff0c;安装在前车门后视镜三角板中的两个高音头会与同色车内氛围灯一块亮起&#xff0c;同时向外旋出10mm至最佳效果位置&#xff0c;以提高…

docker安装单机版nacos,并把数据保存到MySQL

1.下载镜像(请根据cloud版本选择) docker pull nacos/nacos-server:1.4.12.启动临时镜像并拷贝文件 docker run -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos-temp \ -d nacos/nacos-server:1.4.1后面是需要修改的本机路径 docker cp nacos-temp:/home/nacos/logs/…

记录一个heatmap.js在strict模式下的bug

ImageData的data属性只读&#xff0c;无法修改 出问题的在原始代码的490行~528行 var img this.shadowCtx.getImageData(x, y, width, height);var imgData img.data;var len imgData.length;var palette this._palette;for (var i 3; i < len; i 4) {var alpha imgD…

拥有铁粉,怀抱CSDN大家庭

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…

收藏备用 | 提高效率的建筑工地技巧

随着城市化进程的加速和建筑业的蓬勃发展&#xff0c;建筑工地扬尘和噪声污染成为了日益突出的问题。这些问题不仅对周边环境造成了不良影响&#xff0c;还对居民的生活质量和健康造成了潜在风险。 为了有效管理和监控建筑工地的扬尘和噪声水平&#xff0c;保障周边居民的权益和…

ROS:rqt工具箱

目录 一、概念二、作用三、rqt安装启动3.1安装3.2启动 一、概念 ROS基于 QT 框架&#xff0c;针对机器人开发提供了一系列可视化的工具&#xff0c;这些工具的集合就是rqt 二、作用 方便的实现 ROS 可视化调试&#xff0c;并且在同一窗口中打开多个部件&#xff0c;提高开发…

nginx简单项目部署

后台可以连接idea服务也可以部署到java上这里不展开 nginx官网下载安装 启动命令&#xff1a; start nginx 或者双击nginx.exe 重启命令 &#xff1a;nginx -s reload 修改配置文件 E:\dev\nginx\nginx-1.22.1\conf\nginx #user nobody; worker_processes 1;#error_log lo…

[Unity实战]EnhancedScroller v2.21.4简单使用[开箱可用]

[Unity实战]EnhancedScroller v2.21.4简单使用[开箱可用] EnhancedScroller v2.21.4 简单使用EnhancedScroller是什么?1.处理UI1.1 加入Canvas1.2 Canvas/Scroller --> 空对象1.3 Scroller加入组件 EnhancedScroller1.4 拖拽Scroller1.5 Scroller/GameObject --> 拖拽到…