注意!Vue.js 或 Nuxt.js 中请停止使用.value

简介: 注意!Vue.js 或 Nuxt.js 中请停止使用.value

当您在代码中使用.value时,必须每次都检查变量是否存在并且是引用。这可能很麻烦,因为在运行时使用.value可能会导致错误。然而,有一个简单的解决方法,即使用unref()而不是.valueunref()会检查变量是否是引用,并自动提供值,即使变量不是引用也不会引发错误。

下面是使用unref()的示例:

// 使用 .value 方式
const v = a.value || A;
// 使用 unref 方式
const v = unref(a);

首先,您不需要在每个变量上都使用ref()

以下是不需要使用ref()的示例:

<template>
  <ul class="navbar-nav">
    <li
      class="nav-item"
      v-for="listPage in listingPages"
      :key="listPage.name"
    >
      <NuxtLink
        class="nav-link"
        :to="listPage.link"
        :class="{ active: $route.path.indexOf(listPage.link) !== -1 }"
        :aria-current="
          $route.path.indexOf(listPage.link) !== -1 ? 'page' : null
        "
      >
        {{ listPage.name }}
      </NuxtLink>
    </li>
  </ul>
</template>

<script setup>
const listingPages = [
  { name: "Posts", link: "/list/posts" },
  { name: "Authors", link: "/list/authors" },
  { name: "Tags", link: "/list/tags" },
];
</script>

上述示例是一个 Nuxt 3 项目的代码片段。listingPages变量列出了在导航栏中作为链接显示的页面。

由于这些变量的值是静态的,并且链接引用了对应路径上存在的静态 Vue 文件,即 URL 路径/lists/posts代表路径  /pages/lists/posts.vue中项目下的静态文件,因此这些变量的值永远不会改变。因此,可以将这些变量排除在ref()声明之外。

还有其他类似情况的变量,它们的值在服务器端或客户端端上永远不会改变,就像上述示例一样,它们可以在声明时排除ref()

同时,完全忘记使用ref()也是不好的。只选择那些需要响应性的变量,或者值在保持相同路径时可能发生变化的变量(例如,对于 Nuxt.js,我指的是不包括查询字符串的路径,请注意)。

我已经测试过,如果您不使用引用来使用页面查询值,对于具有分页功能的页面(?page=1),即使在 URL 栏中的值发生变化,它也永远不会更新。

相关文章
|
6月前
|
Web App开发 缓存 前端开发
VUE-CLI可选的配置文件vue.config.js
VUE-CLI可选的配置文件vue.config.js
73 0
|
25天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
24 4
|
6月前
|
JavaScript 前端开发 持续交付
【专栏】Vue.js和Node.js如何结合构建现代Web应用
【4月更文挑战第27天】本文探讨了Vue.js和Node.js如何结合构建现代Web应用。Vue.js作为轻量级前端框架,以其简洁易懂、组件化开发、双向数据绑定和虚拟DOM等特点受到青睐;而Node.js是高性能后端平台,具备事件驱动、非阻塞I/O、丰富生态系统和跨平台优势。两者结合实现前后端分离,高效通信,并支持热更新、持续集成、跨平台和多端适配,为开发高性能、易维护的Web应用提供强有力的支持。
258 2
|
2月前
|
JavaScript 前端开发 UED
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
|
3月前
|
JavaScript 前端开发 UED
服务器端渲染新浪潮:用Vue.js和Nuxt.js构建高性能Web应用
【8月更文挑战第30天】在现代Web开发中,提升应用性能和SEO友好性是前端开发者面临的挑战。服务器端渲染(SSR)能加快页面加载速度并改善搜索引擎优化。Vue.js结合Nuxt.js提供了一个高效框架来创建SSR应用。通过安装`create-nuxt-app`,可以轻松创建新的Nuxt.js项目,并利用其自动路由功能简化页面管理。Nuxt.js默认采用SSR模式,并支持通过`asyncData`方法预取数据,同时提供了静态站点生成和服务器端渲染的部署选项,显著提升用户体验。
86 0
|
3月前
|
JavaScript 前端开发 API
全栈开发革命来临!Vue.js与Node.js联手,打造前后端无缝对接的奇迹之作!
【8月更文挑战第30天】在Web开发领域,前后端分离与协作至关重要。Vue.js以其轻量级和易用性深受前端开发者喜爱,而Node.js则以高性能和事件驱动特性在后端领域崭露头角。二者结合开启了全栈开发新篇章,通过RESTful API或GraphQL实现高效稳定通信。本文以示例说明如何使用Vue.js和Node.js构建全栈应用,从前端Vue组件到后端Express服务器,展示了数据获取与展示的全过程。这种组合提供了一种高效简洁的全栈开发方案,使开发者能更专注于业务逻辑实现。
242 1
|
3月前
|
JavaScript 前端开发 C++
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
【Azure Function】调试 VS Code Javascript Function本地不能运行,报错 Value cannot be null. (Parameter 'provider')问题
|
5月前
|
JavaScript 前端开发 程序员
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
探索Vue.js宝库:解锁基础知识与实用技能之门(1. 数据绑定与响应式 2. 条件与循环 3. 组件化开发;1. 路由管理与导航 2. 状态管理与Vuex 3. Vue.js的生命周期)
50 1
|
5月前
vue.js+node.js+mysql在线聊天室源码
vue.js+node.js+mysql在线聊天室源码 技术栈:vue.js+Element UI+node.js+socket.io+mysql
169 3
|
5月前
|
缓存 JavaScript 前端开发
Nuxt.js实战:Vue.js的服务器端渲染框架
Nuxt.js提供了开发、构建和部署的完整工作流。使用nuxt命令启动开发服务器,nuxt build进行生产构建,nuxt start启动生产服务器
91 0
下一篇
无影云桌面