第III章-ⅠVue3进阶语法

本文介绍了Vue3中的组合式API,重点讲解了setup函数的组织逻辑、methods方法与computed计算属性的使用,以及ref和watch在响应式编程中的应用。同时详细讨论了表单绑定的v-model及其修饰符在Vue3中的新特性。
摘要由CSDN通过智能技术生成

setup 函数

Vue 3 引入了组合式 API,其中核心是 setup 函数。这个函数是组件中所有 Composition API 特性的入口点。

  • 组织逻辑:setup 函数允许开发者更灵活地组织代码,将相关功能逻辑组合在一起,而不是分散在 data, methods, computed 等选项中。
  • 复用逻辑:通过使用 Composition API,开发者可以更容易地提取和复用逻辑,尤其是跨组件的逻辑。
  • 更好的 TypeScript 集成:setup 函数提供了更好的类型推断,使得与 TypeScript 的集成更为紧密和有效。
<script setup>
</script>

Vue方法计算属性及监听器

methods方法

用于定义组件的功能方法,可以在模板中通过事件绑定或直接调用。

<template>
    <button @click="handleClick">Click Me</button>
</template>

<script setup>
function handleClick() {
    console.log("Button clicked.");
}
</script>

在这里,handleClick 方法通过 @click 绑定到按钮的 click 事件。区别:在 Vue 3 中,methods 方法可以通过组合式 API 中的 setup 函数直接定义。这与 Vue 2 中通过选项 API 定义 methods 略有不同。

computed计算属性

用于定义具有缓存机制的属性,其值由其他响应式数据派生。

<template>
    <div>{{ fullName }}</div>
</template>

<script setup>
import { ref, computed } from 'vue';

const firstName = ref("John");
const lastName = ref("Doe");

const fullName = computed(() => `${firstName.value} ${lastName.value}`);
</script>

在这里,fullName 是一个计算属性,它通过 computed 方法定义并由 firstName 和 lastName 变量派生。区别:Vue 3 中的 computed 使用组合式 API 进行定义,而 Vue 2 中是通过选项 API 的 computed 属性进行定义。

ref函数

ref 用于创建一个响应式的引用对象,其主要用途是维持一个内部值,并确保 Vue 的响应式系统能够追踪到其变化。当你在组件中使用 ref 时,你可以将普通类型(如字符串、数字、布尔值)转换成响应式对象。这个响应式对象有一个名为 value 的属性,用来存储其实际的值。它将普通 JavaScript 值转换为响应式对象,使其能够在 Vue 组件中进行双向绑定、依赖追踪等响应式操作。

const count = ref(0);
count.value = 1; // 更新响应式状态

count 是一个响应式引用,通过修改 count.value,Vue 的响应式系统能够捕捉到这一变化并相应地更新 UI。
提示:在模板中直接使用 count 而不是 count.value,Vue 自动处理了解包。在 JavaScript 代码中 Vue 不会自动解包 ref,你需要显式地通过 .value 属性来操作它的值。

watch 监听器

用于监听一个或多个响应式数据,并在数据变化时触发特定逻辑。

<template>
    <div>{{ count }}</div>
</template>

<script setup>
import { ref, watch } from 'vue';

const count = ref(0);

watch(count, (newValue, oldValue) => {
    console.log(`Count changed from ${oldValue} to ${newValue}`);
});

function increment() {
    count.value += 1;
}
</script>

在这里,watch 监听了 count 变量,并在其变化时记录新旧值。区别:Vue 3 中的 watch 使用组合式 API 定义,而 Vue 2 中是通过选项 API 的 watch 属性定义。

Vue的表单绑定

v-model实现表单绑定

用于将输入控件与响应式数据绑定,从而实现双向数据绑定。

<template>
    <input v-model="name" />
    <p>{{ name }}</p>
</template>

<script setup>
import { ref } from 'vue';

const name = ref("");
</script>

在这里,v-model 绑定了输入框的值与 name 变量,实现了双向数据绑定。区别:Vue 3 中的 v-model 支持多种形式,可以绑定多个属性,例如:

<input v-model:name="userName" />
<input v-model:email="userEmail" />

v-model修饰符

  • .lazy:仅在输入框失去焦点时更新变量:
<input v-model.lazy="name" />

在这里,name 变量仅在输入框失去焦点时更新。

  • .number:自动将输入转换为数值:
<input v-model.number="age" />

在这里,age 变量会自动转换为数值。

  • .trim:自动去除输入的空白字符:
<input v-model.trim="username" />

在这里,username 变量会自动去除输入的空白字符。
v-model 修饰符在 Vue 3 和 Vue 2 中的作用一致,但 Vue 3 提供了更灵活的多属性绑定方式。

  • 31
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue-Quill-Editor是一个vue组件,用于在Vue项目中使用富文本编辑器。针对Vue 3和TypeScript语法,你可以按照以下步骤进行配置和使用: 1. 首先,在你的Vue项目中安装Vue-Quill-Editor依赖包。你可以使用npm或yarn命令进行安装。 2. 在Vue组件中引入Vue-Quill-Editor组件,并在components选项中注册它。你可以使用import语句导入QuillEditor组件,然后在components选项中添加它。 3. 在模板中使用Vue-Quill-Editor组件。你可以通过在模板中添加<QuillEditor />标签来使用它。你还可以通过v-model指令将编辑器的内容绑定到一个Vue的data属性上。 4. 根据需要,你可以使用Vue-Quill-Editor提供的不同的配置选项来自定义编辑器的行为和外观。你可以将这些选项作为组件的属性传递给QuillEditor组件。 5. 对于TypeScript支持,你需要按照Vue 3的TypeScript语法规则进行类型定义和类型注解。根据需要,你可以为QuillEditor组件和编辑器的内容创建类型定义。 下面是一个示例代码,展示了如何在Vue 3项目中使用Vue-Quill-Editor和TypeScript语法: ```vue <template> <div> <QuillEditor v-model="editorContent" :options="editorOptions" /> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; import { QuillEditor } from '@vueup/vue-quill'; export default defineComponent({ components: { QuillEditor }, data() { return { editorContent: '', editorOptions: { // 配置选项 } }; } }); </script> ``` 请注意,以上代码仅为示例,你需要根据你的项目需求和实际情况进行相应的配置和调整。同时,你还可以参考Vue-Quill-Editor的文档,了解更多关于配置选项和使用方法的详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Vue3适用的富文本编辑器(vue2.0 vue-quill-editor)](https://blog.csdn.net/weixin_55609002/article/details/126339278)[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* [支持vue3.0+ts 的富文本记录](https://blog.csdn.net/weixin_43909743/article/details/124882802)[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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值