vue的详细用法之---vue的基础语法(一)

41 篇文章 7 订阅

v-once指令

v-once用于指定元素或者组件只渲染一次:
p当数据发生变化时,元素或者组件以及其所有的子元素将视为静态内容并且跳过;
p该指令可以用于性能优化;
在这里插入图片描述
如果是子节点,也是只会渲染一次:
在这里插入图片描述

v-text指令

用于更新元素的 textContent:
在这里插入图片描述

v-html

默认情况下,如果我们展示的内容本身是 html 的,那么vue并不会对其进行特殊的解析。
p如果我们希望这个内容被Vue可以解析出来,那么可以使用 v-html 来展示;
在这里插入图片描述

v-pre

v-pre用于跳过元素和它的子元素的编译过程,显示原始的Mustache标签:
跳过不需要编译的节点,加快编译的速度;
在这里插入图片描述

v-cloak

这个指令保持在元素上直到关联组件实例结束编译。
和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到组件实
例准备完毕。
在这里插入图片描述

不会显示,直到编译结束。

v-bind的绑定属性

前端讲的一系列指令,主要是将值插入到模板内容中。
但是,除了内容需要动态来决定外,某些属性我们也希望动态来绑定。
比如动态绑定a元素的href属性;
比如动态绑定img元素的src属性;
绑定属性我们使用v-bind:
缩写::
预期:any (with argument) | Object (without argument)
参数:attrOrProp (optional)
修饰符:
.camel - 将 kebab-case attribute 名转换为 camelCase。
用法:动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。
v-bind用于绑定一个或多个属性值,或者向另一个组件传递props值(这个学到组件时再介绍);
在开发中,有哪些属性需要动态进行绑定呢?
还是有很多的,比如图片的链接src、网站的链接href、动态绑定一些类、样式等等
在这里插入图片描述
v-bind有一个对应的语法糖,也就是简写方式。
n 在开发中,我们通常会使用语法糖的形式,因
为这样更加简洁。

绑定class介绍

在开发中,有时候我们的元素class也是动态的,比如:
当数据为某个状态时,字体显示红色。
当数据另一个状态时,字体显示黑色。
绑定class有两种方式:
对象语法
数组语法

绑定class – 对象语法

对象语法:我们可以传给 :class (v-bind:class 的简写) 一个对象,以动态地切换 class。
在这里插入图片描述

绑定class – 数组语法

 数组语法:我们可以把一个数组传给 :class,以应用一个 class 列表;

在这里插入图片描述

绑定style介绍

我们可以利用v-bind:style来绑定一些CSS内联样式:
这次因为某些样式我们需要根据数据动态来决定;
比如某段文字的颜色,大小等等;
CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名;
绑定class有两种方式:
对象语法
数组语法

绑定style演练

对象语法:
在这里插入图片描述
数组语法:
:style 的数组语法可以将多个样式对象应用到同一个元素上;
在这里插入图片描述

动态绑定属性

 在某些情况下,我们属性的名称可能也不是固定的:
前端我们无论绑定src、href、class、style,属性名称都是固定的;
如果属性名称不是固定的,我们可以使用 :[属性名]=“值” 的格式来定义;
这种绑定的方式,我们称之为动态绑定属性;

在这里插入图片描述

绑定一个对象

如果我们希望将一个对象的所有属性,绑定到元素上的所有属性,应该怎么做呢?
非常简单,我们可以直接使用 v-bind 绑定一个 对象;
案例:info对象会被拆解成div的各个属性
在这里插入图片描述

v-on绑定事件 v-on的用法

v-on的使用:
缩写:@
预期:Function | Inline Statement | Object
参数:event
修饰符:
.stop - 调用 event.stopPropagation()。
.prevent - 调用 event.preventDefault()。
.capture - 添加事件侦听器时使用 capture 模式。
.self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
.{keyAlias} - 仅当事件是从特定键触发时才触发回调。
.once - 只触发一次回调。
.left - 只当点击鼠标左键时触发。
.right - 只当点击鼠标右键时触发。
.middle - 只当点击鼠标中键时触发。
.passive - { passive: true } 模式添加侦听器
用法:绑定事件监听

v-on的基本使用

我们可以使用v-on来监听一下点击的事件:
在这里插入图片描述
v-on:click可以写成@click,是它的语法糖写法:
在这里插入图片描述
当然,我们也可以绑定其他的事件:
在这里插入图片描述
如果我们希望一个元素绑定多个事件,这个时候可以传入一个对象:
在这里插入图片描述

v-on参数传递

当通过methods中定义方法,以供@click调用时,需要注意参数问题:
情况一:如果该方法不需要额外参数,那么方法后的()可以不添加。
但是注意:如果方法本身中有一个参数,那么会默认将原生事件event参数传递进去
情况二:如果需要同时传入某个参数,同时需要event时,可以通过$event传入事件。
在这里插入图片描述
在这里插入图片描述

v-on的修饰符

v-on支持修饰符,修饰符相当于对事件进行了一些特殊的处理:
.stop - 调用 event.stopPropagation()。
.prevent - 调用 event.preventDefault()。
.capture - 添加事件侦听器时使用 capture 模式。
.self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
.{keyAlias} - 仅当事件是从特定键触发时才触发回调。
.once - 只触发一次回调。
.left - 只当点击鼠标左键时触发。
.right - 只当点击鼠标右键时触发。
.middle - 只当点击鼠标中键时触发。
.passive - { passive: true } 模式添加侦听器
在这里插入图片描述

条件渲染

在某些情况下,我们需要根据当前的条件决定某些元素或组件是否渲染,这个时候我们就需要进行条件判断了。
Vue提供了下面的指令来进行条件判断:
v-if
v-else
v-else-if
v-show

v-if、v-else、v-else-if用于根据条件来渲染某一块的内容:
这些内容只有在条件为true时,才会被渲染出来;
这三个指令与JavaScript的条件语句if、else、else if类似;
在这里插入图片描述
v-if的渲染原理:
v-if是惰性的;
当条件为false时,其判断的内容完全不会被渲染或者会被销毁掉;
当条件为true时,才会真正渲染条件块中的内容;

template元素

因为v-if是一个指令,所以必须将其添加到一个元素上:
但是如果我们希望切换的是多个元素呢?
此时我们渲染div,但是我们并不希望div这种元素被渲染;
这个时候,我们可以选择使用template;
template元素可以当做不可见的包裹元素,并且在v-if上使用,但是最终template不会被渲染出来:
有点类似于小程序中的block
在这里插入图片描述

v-show

v-show和v-if的用法看起来是一致的,也是根据一个条件决定是否显示元素或者组件:
在这里插入图片描述

v-show和v-if的区别

首先,在用法上的区别:
v-show是不支持template;
v-show不可以和v-else一起使用;
其次,本质的区别:
v-show元素无论是否需要显示到浏览器上,它的DOM实际都是有渲染的,只是通过CSS的display属性来进行
切换;
v-if当条件为false时,其对应的原生压根不会被渲染到DOM中;
开发中如何进行选择呢?
如果我们的原生需要在显示和隐藏之间频繁的切换,那么使用v-show;
如果不会频繁的发生切换,那么使用v-if;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3中使用vue-baidu-map的方法如下: 1. 首先,安装vue-baidu-map依赖包。可以通过npm或者yarn进行安装。 2. 在vue组件中引入BMap,并在mounted钩子函数中创建地图实例。注意,在Vue3中,需要使用import语法引入BMap,例如:import BMap from 'BMap'。 3. 在mounted钩子函数中,使用BMap创建地图实例,并设置地图的中心点和缩放级别。 4. 添加地图标注:使用BMap.Marker创建标注实例,并将其添加到地图上。 5. 可选地,添加信息窗口:使用BMap.InfoWindow创建信息窗口实例,并使用map.openInfoWindow()方法开启信息窗口。 6. 可选地,为标注添加点击事件,当点击标注时开启信息窗口。 以下是一个示例代码: ```html <template> <div class="map"> <div id="map"></div> </div> </template> <script> import BMap from 'BMap' export default { mounted() { const map = new BMap.Map('map') const point = new BMap.Point(118.750801, 31.944156) map.centerAndZoom(point, 15) const marker = new BMap.Marker(point) map.addOverlay(marker) const opts = { width: 100, height: 50 } const infoWindow = new BMap.InfoWindow('这里显示地址详细信息', opts) marker.addEventListener('click', function() { map.openInfoWindow(infoWindow, point) }) } } </script> ``` 以上代码展示了在Vue3中使用vue-baidu-map的基本流程。你需要根据自己的需求,在上述基础上进行进一步的定制和添加功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue3 使用百度地图,踩坑日历](https://blog.csdn.net/hjg1224/article/details/121241972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue-baidu-map离线百度地图,并附带jar包免费下载百度瓦片数据](https://download.csdn.net/download/HZC961850356/82034496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zayyo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值