IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue3基础 -> 正文阅读

[JavaScript知识库]Vue3基础

1.vue3基础介绍

1.1 vue3带来的新变化

  • 性能提升(渲染更快,diff算法更快,内存占用更少,打包体积更小)
  • 更好的Tyoescript支持
  • 提供新的写代码的方式:Composition API

?1.2 移除的一些语法

  • 移除了$on方法 (eventBus现有实现模式不再支持,可以使用三方插件替代)
  • 移除过滤器选项 (插值表达式里不能再使用过滤器filter, 可以使用methods替代)
  • 移除 .sync语法(v-bind时不能使用.sync修饰符了,现在它v-model语法合并了)

?2.组合式API和选项式API

2.1 Vue2选项式API(option api)

优点:简单,好上手,各司其职

缺点: 代码零散,不方便功能复用

2.2?Vue3组合式API(composition api)

优点:功能代码组合维护

?3.setup函数

3.1 作用

  • setup函数是一个新的组件选项,作为组件中使用组合API的起点。
  • setup中不能使用this,this指向undefined。
  • setup函数只会在组件初始化的时候执行一次。
  • setup函数在beforeCreated生命周期钩子执行之前执行

3.2 执行时机

从组件生命周期来看,它的执行在组件实例创建之前执行(在beforeCreate前),这就意味着setup函数中this还不是组件实例,this此时是undefined

setup() {
	console.log('setup....', this)
},
beforeCreate() {
	console.log('beforeCreate') // 它比setup迟
}

3.3 参数

  • 第一个参数props为一个对象,内部包含了?父组件传递过来的所有prop数据
  • 第二个参数context为一个对象,包含了?attrs,slots,emit?属性
setup(props,context) {

}

3.4 返回值

setup函数的返回值是一个对象,在模板中需要使用的数据和函数,需要在这个对象中声明。

4.生命周期

组合API的生命周期钩子有7个,它们都是回调函数的格式。可以多次使用同一个钩子,执行顺序和书写顺序相同

?5.ref函数

因为在setup中返回的数据不是响应式的,这时候就需要 ref 来定义响应式数据。

5.1 步骤

  • 从vue框架中导入ref函数
  • 在setup函数中调用ref函数并传入数据(简单类型或者复杂类型)
  • 在setup函数中把ref函数调用完毕的返回值以对象的形式返回出去

5.2 代码

<template>
  <p>姓名:{{name}}, 公司:{{company}},月薪:{{salary}}</p>
  <button @click="double">月薪double</button>
</template>
<script>
import { ref } from 'vue'
export default {
  name: 'App',
  setup () {
    // 定义响应式对象
    const company = ref('DiDi')
    const name = ref('小王')
    const salary = ref(18000)
    
    const double = () => {
      // 在代码中修改(或者获取)值时,需要补上.value
      salary.value *= 2
    }
    return {  
      name, 
      company,
      salary,
      double
    }
  }
}
</script>

5.3 注意

  • 在代码中修改(获取)值的时候,需要补上 .value
  • 在模板中使用时,可以省略 .value

6.ref属性

6.1 作用

获取子组件(DOM)的引用

6.2 步骤

  • 导入ref函数
  • 使用ref函数传入null创建 ref对象 => const hRef = ref(null)
  • setup中导出
  • 模板中通过定义ref属性等于1中创建的ref对象名称建立关联 => <h1 ref="hRef"></h1>

    使用 => hRef.value

6.3 代码演示

<template>
  <div class="container">
    <div ref="dom">我是box</div>
    <button @click="hClick"></button>
  </div>
</template>
<script>
import { onMounted, ref } from 'vue'
export default {
  name: 'App',
  setup () {
    // 1. 获取单个元素

    const dom = ref(null)
    const hClick(()=>{
       console.log(dom.value)
    })
    
    return {dom, hClick}
  }
}
</script>

?7.reactive函数

  • ref函数定义的响应式数据在代码中使用要加.value,不是很方便,这时候我们可以使用reactive定义响应式数据。
  • reactive是一个函数,它可以定义一个复杂数据类型,成为响应式数据。

7.1 使用步骤

  • 导入:从vue框架中导入reactive函数
  • 调用:在setup函数中调用reactive函数并将对象数据传入
  • 导出:在setup函数中把reactive函数调用完毕之后的返回值以对象的形式返回出去

7.2 代码?

<template>

  <p>姓名:{{stu.name}}, 公司:{{stu.company}},月薪:{{stu.salary}}</p>
  <button @click="double">月薪double</button>
</template>

<script>
import { reactive } from 'vue'
export default {
  name: 'App',
  setup () {
    const stu = reactive({
      company: 'DiDi',
      name: '小王',
      salary:18000
    })

    const double = () => {
      stu.salary *= 2
      console.log('stu.salary', stu.salary)
    }
    return {  
      stu,
      double
    }
  }
}
</script>

8.toRefs函数

8.1 作用

定义转换响应式中所有属性为响应式数据,通常用于解构|展开reactive定义对象, 简化我们的在模板中的使用。

8.2 格式

// 响应式数据:{ 属性1, 属性2 }
let { 属性1, 属性2 } = toRefs(响应式数据)

总结:增强版的结构赋值:在解构对象的同时,保留响应式的特点。

9.如何取舍ref和reactive

  • ref函数,常用于将简单数据类型定义为响应式数据

    • 在代码中修改(或者获取)值时,需要补上.value

    • 在模板中使用时,可以省略.value

  • reactive函数,常用于将复杂数据类型为响应式数据

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:46:04  更:2021-07-14 10:46:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 4:45:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码