Vue 3.5新特性

Vue3.5新特性加粗样式

就在昨天,尤大叕更新了,大概更新了以下内容

  • 响应式重构。性能提升了,内存使用率下降了(56%),使用方面没有变化。
  • 响应式 props 解构
  • 新增 useTemplateRef 函数
  • 新增 useId 函数

1、props 解构,在之前,我们从 props 中解构出来的是不具备响应式的,需要具备响应式解构需要用到 toRefs 方法包装 props进行解构,而3.5之后,就无需 toRefs 包装了。

// 父组件
<template>
  <div class="content">
    <el-input v-model="value" style="width: 300px" />
    <Child :data="value" />
  </div>
</template>
<script setup>
import { ref, onMounted } from "vue";
import Child from "./components/Child.vue";
const value = ref("monkey");
</script>



// 子组件
<template>
  <div>
    child值:
    <span style="color: red">{{ data }}</span>
  </div>
</template>

<script setup>
import { watchEffect } from "vue";
const { data } = defineProps(["data"]);   //  仍具备响应式
watchEffect(() => {
  console.log("data", data);
});
</script>

2、 useTemplateRef 函数,在之前,我们获取 dom 节点需要给 dom 绑定上一个ref=‘refKey’, 然后再用一个ref定义一个空的响应式属性赋值给这个refKey。 如下所示

<template>
  <div class="content" ref='myNode'>dom</div>
</template>
<script setup>
import { ref, onMounted } from "vue";
import Child from "./components/Child.vue";
const value = ref("monkey");
const myNode = ref(null)
onMounted(()=>{
	console.log(myNode)    // 拿到 dom 节点
})
</script>

而现在,有了 useTemplateRef 函数,我们可以更好的区分响应式属性和 dom 节点,不像之前响应式属性和dom节点都是通过ref定义和获取。

useTemplateRef 用法如下

<template>
  <span style="color: red" ref="myNode">是我</span>
</template>

<script setup>
import { useTemplateRef } from "vue";
const node = useTemplateRef("myNode");    // 这里定义的接收dom节点的变量无需和ref一样,随便定义接收

onMounted(()=>{
	console.log(node)    // 拿到 dom 节点
})
</script>

3、 useId函数,目的是为每一个 vue 文件创建一个唯一的id,并保证在服务器和客户端渲染中保持稳定,可用于生成表单元素和可访问性属性的 ID,如下所示

<template>
 <label :for="id">点我也能聚焦</label>
 <!-- vue3.4同名简写 -->
 <input :id type="text" placeholder="Enter text here">  
</template>

<script setup>
import { useId } from "vue";
const id = useId();   
console.log(id)     // v:0

</script>

有关 3.5 中的更改和功能的完整列表,请查看GitHub 上的完整更改日志

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面包屑是一种导航元素,用于显示用户当前所在页面的路径。在Vue中,处理面包屑可以通过以下几个步骤: 1. 设置面包屑样式:复制Element官网面包屑基础用法的代码,并应用到CommonHeader组件中。 2. 设置面包屑对齐方式:将面包屑的水平对齐方式设置为居中。 3. 设置面包屑文字颜色:查看面包屑内容的CSS样式,并复制相应的类选择器到CommonHeader组件中,将面包屑的文字颜色改为白色。 4. 设置面包屑间距:根据需要,设置面包屑之间的间距。 5. 面包屑处理关键字:当面包屑中的关键字被清除时,需要清除兄弟组件Header组件中的关键字。可以使用父子组件通信的方式,通过props、自定义事件、vuex、万能插槽、父子pubsub-js或全局事件总线等方法实现。 6. 面包屑处理品牌信息:根据需求,处理面包屑中的品牌信息。具体方法可能因项目而异。 以上是处理Vue中面包屑的一些方法和步骤。根据具体情况,您可以选择适合您项目的方法来实现面包屑功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [P4-Vue3后台管理系统-顶部导航与左侧导航联动面包屑](https://blog.csdn.net/m0_38039437/article/details/113740424)[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* *3* [尚硅谷vue前端项目心得3](https://blog.csdn.net/im_joy/article/details/122555868)[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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值