Vue3 <script setup lang=“ts“> 的基本使用

yizhihongxing

Vue3提供了一种名为 <script setup> 的语法糖,它可以让我们更加便捷地编写Vue组件。在加上 lang="ts" 后可以通过TypeScript来书写Vue3组件,提高代码的可读性和类型安全性。

首先,让我们创建一个Vue3组件,该组件可以在页面上显示一个计数器,并且能够点击按钮对其进行累加操作。

<template>
  <div>
    <h1>Counter: {{ counter }}</h1>
    <button @click="increment">Increment</button>
  </div>
</template>

在Vue3的新增语法糖 <script setup> 中,我们可以通过以下方式来编写样式代码:

<script setup lang="ts">
import { ref } from 'vue'

const counter = ref(0)

const increment = () => {
  counter.value++
}
</script>

在上面的代码中,我们引入了 Vue 的 ref 函数来定义一个计数器。ref 总是返回一个对象,这个对象包含了一个名为 value 的响应式属性,通过 counter.value 累加来更新计数器的值。在 increment 函数中,我们只需要让 counter 加一就可以了。

除了简化代码之外,<script setup> 还可以提供更严格的类型检查和错误提示,以及更友好的错误提示信息。

接下来,让我们再来看一下一个更复杂的例子。这次我们来创建一个 TodoList 组件,它可以添加和删除任务,并能够显示所有任务列表的待做和已完成情况。

<template>
  <div>
    <h1>Todos:</h1>
    <ul>
      <li v-for="(todo, index) in todos" :key="index">
        <span :class="todo.completed ? 'completed' : ''"
          >{{ todo.text }}</span
        >
        <button @click="complete(todo)">Complete</button>
        <button @click="remove(todo)">Delete</button>
      </li>
    </ul>

    <form @submit.prevent="add">
      <input type="text" v-model="text" />
      <button type="submit">Add</button>
    </form>
  </div>
</template>

<script setup> 中,我们可以使用以下代码编写逻辑代码:

<script setup lang="ts">
import { ref } from 'vue'

interface Todo {
  text: string
  completed: boolean
}

const todos = ref<Todo[]>([])
const text = ref('')

const add = () => {
  todos.value.push({
    text: text.value,
    completed: false
  })
  text.value = ''
}

const complete = (todo: Todo) => {
  todo.completed = true
}

const remove = (todo: Todo) => {
  const index = todos.value.indexOf(todo)
  todos.value.splice(index, 1)
}
</script>

在上面的代码中,我们使用 TypeScript 来定义了一个 Todo 接口,并使用了 ref 函数来定义了 todostext 响应式数据。在 add 函数中,我们使用 push 方法向 todos 数组中加入一个新的任务,并将 text 清空,实现了增加任务的操作。在 complete 函数中,我们将待做任务标记为已完成,实现了完成任务的操作。在 remove 函数中,我们使用 indexOf 方法来查找待删除任务在数组中的索引,并借助 splice 方法从数组中将其删除,实现了删除任务的操作。

至此,我们已经了解了 Vue3 新增的 <script setup> 语法糖,并通过两个示例介绍了其基本使用。通过使用 <script setup>,我们可以更加便捷地编写 Vue3 组件,并提高代码的可读性和可维护性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue3 <script setup lang=“ts“> 的基本使用 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析

    Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析 Bootstrap时间选择器(datetimepicker)和日期范围选择器(daterangepicker)是基于Bootstrap框架的时间和日期选择器插件,能够让用户轻松快速地选择时间和日期。在本文中,我们将详细讲解如何使用datetimepicker…

    Vue 2023年5月28日
    00
  • Vue中ref的用法及演示

    下面是“Vue中ref的用法及演示”的完整攻略。 一、什么是Vue中的ref ref 是 Vue 提供的一个属性,可以用来给元素或组件注册引用信息。比如,渲染后,我们可以使用$refs来访问这个元素。 二、Vue中ref的用法 1. 绑定ref 我们对组件(或元素)绑定ref属性,Vue将会提供一个组件实例(或元素)的引用,我们在组件内可以使用 this.$…

    Vue 2023年5月28日
    00
  • vue-cli中的:visible.sync是什么意思

    在Vue-cli中,:visible.sync 是一个指令,用于实现父组件与子组件之间的双向绑定。通过这个指令,可以实现在父组件中改变子组件的状态,并且子组件中的状态改变也能反映到父组件中。 下面是这个指令的应用示例: <!– 父组件 –> <template> <div> <child-component :v…

    Vue 2023年5月27日
    00
  • Vue3 + Vue-PDF 实现PDF 文件在线预览实战

    让我为你详细讲解如何使用Vue3和Vue-PDF实现PDF文件在线预览。 1. 安装依赖 首先,我们需要创建一个Vue3项目,并安装Vue-PDF的依赖。 vue create vue-pdf-demo cd vue-pdf-demo npm install vue-pdf –save 2. 引入PDF文件 接下来,在Vue组件中引入要预览的PDF文件。 …

    Vue 2023年5月28日
    00
  • 通过实例解析vuejs如何实现调试代码

    Vue.js作为前端框架,在开发过程中难免会出现各种问题,此时调试就变得非常必要。本文将通过实例解析Vue.js如何实现调试代码的完整攻略。 开启DevTools 在浏览器中打开Vue.js应用程序,按下F12或者Ctrl+Shift+I可以打开浏览器的开发者工具。然后切换到“Console”面板,就可以在其中输入Vue.js的代码并进行调试了。 Vue D…

    Vue 2023年5月27日
    00
  • vue日期选择框之时间范围的使用介绍

    Vue 日期选择框之时间范围的使用介绍 在 Vue 中,使用日期选择框可以方便用户选择时间。在某些场景下,我们需要选择起始时间和截止时间之间的时间段。本文将介绍如何在 Vue 中使用日期时间范围选择框。 引入组件 Vue.Datepicker 组件是一个支持时间范围选择的日期选择框组件。我们可以通过代码库或者 CDN 引入该组件。 <!– 通过 CD…

    Vue 2023年5月28日
    00
  • vue excel上传预览和table内容下载到excel文件中

    Vue Excel上传预览 在Vue中实现Excel上传预览,需要使用以下三个库:xlsx、file-saver、vue-xlsx。引入这三个库后,在Vue组件中可以实现以下代码: <template> <div> <input type="file" @change="onUpload"…

    Vue 2023年5月28日
    00
  • Vue脚手架搭建及创建Vue项目流程的详细教程

    下面是关于Vue脚手架搭建及创建Vue项目的详细教程攻略: 1. 什么是Vue脚手架? Vue脚手架是Vue.js的官方脚手架工具,提供了快速搭建Vue.js开发环境的方法,包含了常用的插件和构建工具,方便开发者快速地进行Vue项目的开发与调试。 2. Vue脚手架搭建 2.1 环境准备 Vue脚手架需要依赖Node.js和npm包管理器,因此需要先安装No…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部