Vue3详细介绍,正则采集器所用前端框架

Vue3 引入了一个全新的响应式系统,它是基于ES6的Proxy特性构建的。这个系统使得 Vue 能够更加高效地追踪数据的变化,并在数据发生变化时自动更新DOM。响应式系统的核心是"可观察",当数据变化时,视图会响应这些变化并重新渲染。

一、使用响应式助手声明基本类型

1、使用reactive代替Object,Array,Map,Set

reactive 用于定义一个响应式的对象。它接受一个普通对象并返回该对象的响应式代理。这使得整个对象的属性都是响应式的。

2、使用ref代替String,Number,Boolean

ref 用于定义响应式的引用类型。它接受一个参数值,并返回一个响应式且可变的 ref 对象。这个对象有一个 value 属性,指向传入的参数值。
ref 的使用场景:

  • 当你需要包装一个基本类型值(如字符串、数字、布尔值)使其称为响应式时
  • ref 也可以包装数组或对象,但通常情况下我们会使用 reactive 来处理这些复杂类型。

3、解构失去响应式值

return返回响应式对象的属性时不能用解构。在 vue3 中,如果你使用解构来访问一个由 reactive 创建的响应式对象的属性,这些属性会失去其响应式特性。这是因为解构操作实际上是在创建对象属性的本地副本,而这些副本不再是响应式的。 

import { reactive } from 'vue';

const state = reactive({
  count: 0,
  message: 'Hello'
});

// 解构 state 对象
const { count, message } = state;

state.count++;
// count 和 message 在这里是非响应式的
console.log(count); // 输出 0
console.log(message); // 输出 'Hello'

为了保持响应式,你应该直接使用原始的响应式对象,或者使用 vue 提供的 toRefs 函数将 reactive 对象的每个属性都转换为 ref 对象,这样每个属性都保持响应式。

import { reactive, toRefs } from 'vue';

const state = reactive({
  count: 0,
  message: 'Hello'
});

// 使用 toRefs 保持响应式
const { count, message } = toRefs(state);

// 现在 count 和 message 仍然是响应式的
count.value++; // state.count 也会更新
console.log(state.count); // 输出 1

二、模板语法和基本指令

在 Vue3 中,模板语法和基本指令是构建动态用户界面的核心。

1、模板语法

Vue.js 使用基于HTML的模板语法,允许你声明式地将DOM绑定到底层组件实例的数据。所有 Vue.js 模板都是有效的HTML,可以被遵循规范的浏览器和HTML解析器解析。

在模板中你可以使用双大括号 { { }} 进行文本插值

<span>{
  
  {message}</span>

2、v-bind

v-bind 指令用于动态地绑定一个或多个属性,或一个组件prop到表达式。在渲染的DOM上,你会看到属性值被设置为指令的表达式计算的结果。

<img v-bind:src="imageSrc"/>

<!-- 缩写 -->
<img :src="imageSrc"/>

3、v-model

v-model指令在 <input>、<textarea>和<select>元素上创建双向数据绑定。根据控件类型自动选择正确的方法来更新元素。

<!-- 在文本输入框中使用 v-model -->
<input v-model="message">

<!-- 在单选按钮中使用 v-model -->
<input type="radio" v-model="picked" value="One">

<!-- 在选择框中使用 v-model -->
<select v-model="selected">
  <option>A</option>
  <option>B</option>
  <option>C</option>
</select>

4、v-for

v-for 指令基于一个数组来渲染一个列表。该指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 是数组元素迭代的别名。

<ul>
    <li v-for="item in items" :key="item.id">{
  
  {item.text}}</li>
</ul>

使用 :key 是为了给 Vue 一个提示,以便它可以跟踪每个节点的身份,从而重用和重新排序现有元素。

5、v-if、v-else-if、v-else

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true 的时候渲染。

<span v-if="awesome">Vue is awesome</span>
<span v-else-if="ok">Vue is ok</span>
<span v-else>Vue is not ok</span>

6、vue属性

在 Vue3 中,当你使用 ref 函数创建响应式引用时,需要通过 .value 属性来访问或修改数据,因为 ref 返回

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值