Vue 3.0 学习 新特性

这篇具有很好参考价值的文章主要介绍了Vue 3.0 学习 新特性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue 3.0 新特性

一、迎接 Vue 3.0

1. 简介

Vue.js 作者兼核心开发者尤雨溪宣布 Vue 3.0 进入 Beta 阶段。

  • 已合并所有计划内的 RFC

  • 已实现所有被合并的 RFC

  • Vue CLI 现在通过 vue-cli-plugin-vue-next 提供了实验性支持

2. 新特性

重点关注:

  • 更快更省

    Object.defineProperty ——> Proxy

    重构 Virtual DOM

  • 完全的TypeScript

    团队开发更轻松

    架构更灵活,阅读源码更轻松

    可以独立使用Vue内部模块

  • Composition API(组合式API)

    一组低侵入式的、函数式的 API

    更好的逻辑复用与代码组织

    更好的类型推导

3. 参考资源

  • GitHub - vuejs/core: 🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • https://vue-composition-api-rfc.netlify.app

二、初始化项目

  1. 系统环境

    npm -v
    nrm ls
  2. 安装@vue/cli

    npm install @vue/cli -g
  3. 创建项目

    vue create 项目名
  4. 在项目中安装 vue-next插件,试用Vue3 beta

    vue add vue-next
  5. 项目变化

    import { createApp } from 'vue';
    import App from './App.vue'
    ​
    createApp(App).mount('#app')
  6. 启动项目

    npm run serve

补充:

  1. vue-devtools 暂不支持Vue 3.0

  2. VSCode中安装Vue 3 Snippets插件

三、setup函数

setup 函数是一个新的组件选项。作为在组件内使用 Composition API 的入口点。

1. 调用时机

setup 函数会在 beforeCreatee 钩子之前被调用

2. 返回值

如果 setup 返回一个对象,则对象的属性可以在组件模板中被访问

3. 参数

第一个参数为 props,接收当前组件props选项的值,即获取父组件传递过来的参数

export default {
  props: {
    name: String,
  },
  setup(props) {
    console.log(props.name)
  },
}

第二个参数为context,接收一个上下文对象,该对象中包含了一些在vue 2.x 中需要通过 this 才能访问到属性

const MyComponent = {
  setup(props, context) {
    context.attrs
    context.slots
    context.emit
  }
}

注:在 setup() 函数中无法访问 this

四、响应式系统API

Vue 3.0提供的一组具有响应式特性的函数式API,都是以函数形式提供的

1. reactive

reactive()函数接收一个普通对象,返回该普通对象的响应式代理对象

简单来说,就是用来创建响应式的数据对象,等同于vue 2.xVue.observable()函数

步骤:

  1. 按需导入 reactive 函数

    import { reactive } from 'vue'
  2. 调用 reactive 函数,创建响应式数据对象

    setup() {
         // 创建响应式数据对象
        const data = reactive({count: 0})
    
         // 将响应式数据对象暴露出去
        return data;
    }

2. ref

ref()函数接收一个参数值,返回一个响应式的数据对象。该对象只包含一个指向内部值的 .value 属性

  • 基本用法

  • 在模板中访问时,无需通过.value属性,它会自动展开

  • 在reactive对象中访问时,无需通过.value属性,它会自动展开

3. computed

computed() 函数用来创建计算属性,函数的返回值是一个 ref 的实例

  • 只读的计算属性

  • 可读可写的计算属性

4. readonly

readonly()函数接收一个对象(普通或响应式),返回一个原始对象的只读代理对象

5. watch

watch() 函数用来监视数据的变化,从而触发特定的操作,等同于 vue 2.x中的 this.$watch

  • 监视单个数据源

  • 监视多个数据源

  • 取消监视

  • 清除无效的异步任务

6. watchEffect

watchEffect()函数接收一个函数作为参数,并立即执行该函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。

五、响应式系统工具集

1. isRef

检查一个值是否为一个 ref 对象。

2. isReactive

检查一个对象是否是由 reactive 创建的响应式代理。

3. isReadonly

检查一个对象是否是由 readonly 创建的只读代理。

4. isProxy

检查一个对象是否是由 reactive 还是 readonly 方法创建的代理。

5.unref

如果参数是一个 ref 则返回它的 value,否则返回参数本身。它是 val = isRef(val) ? val.value : val 的语法糖。

6. toRef

toRef()函数用来将 reactive 对象的一个属性创建为一个 ref,并且这个 ref 具有响应性,可以被传递。

7. toRefs

toRefs()函数用来将 reactive 对象创建为一个普通对象,但该普通对象的每个属性都是一个 ref,并且这个 ref 具有响应性,可以被传递。

六、生命周期钩子函数

Vue 3.0 中的生命周期函数和 Vue 2.x 相比做了一些调整和变化,对应关系如下:

  • beforeCreate -> 使用 setup()

  • created -> 使用 setup()

  • beforeMount -> onBeforeMount

  • mounted -> onMounted

  • beforeUpdate -> onBeforeUpdate

  • updated -> onUpdated

  • beforeDestroy -> onBeforeUnmount

  • destroyed -> onUnmounted

  • errorCaptured -> onErrorCaptured

这些生命周期钩子函数只能在 setup() 函数中使用

七、依赖注入

依赖注入就是祖先组件向后代组件传递数据,使用provide()inject() 函数来实现,功能类似 vue 2.x中的 provide/inject

这两个函数只能在 setup() 函数中使用:

  • 在祖先组件中使用provide()函数向下传递数据

  • 在后代组件中使用inject()函数获取上层传递过来的数据

八、模板 Refs

通过 ref()函数还可以引用页面上的元素或组件,功能类似于 vue 2.x中的 vm.$refs

步骤:

  1. setup() 中创建一个 ref 对象并返回它

  2. 在页面上为元素添加 ref 属性,并设置属性值与创建的 ref 对象的名称相同

  3. 当页面渲染完成后,可以通过该 ref 对象获取到页面中对应的DOM元素文章来源地址https://www.toymoban.com/news/detail-734384.html

到了这里,关于Vue 3.0 学习 新特性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 「Vue3面试系列」Vue 3.0中Treeshaking特性有哪些?举例说明一下?

    Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术,专业术语叫 Dead code elimination 简单来讲,就是在保持代码运行结果不变的前提下,去除无用的代码 如果把代码打包比作制作蛋糕,传统的方式是把鸡蛋(带壳)全部丢进去搅拌,然后放入烤箱,最后把(没有

    2024年02月01日
    浏览(28)
  • 前端框架学习-Vue(一)

    Vue简介 百度百科上关于vue的词条,说vue时一款渐进式JavaScript框架, 简单来说,渐进式是一种设计理念,即在不失去当前功能的前提下,逐步添加新的特性。 说明它时一直在进行维护的。 Vue3,中使用 *.vue 作为文件后缀,html,css和js都可以写在这个文件中 Vue官方文档 Vue官方Api

    2024年02月16日
    浏览(28)
  • 前端框架学习-Vue(三)

    笔记内容来自:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通 初识Vue 1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象; 2.root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法; 3.root容器里的代码被称为【Vue模板】; 4.Vue实例和容器是一一对应的

    2024年02月15日
    浏览(29)
  • 前端框架学习-Vue(二)

    最近在学习Vue框架,Vue中的内容很多。相当于把之前后端的MVC,V层转移到前端来编写和部署。下面是学习Vue时的大纲。 Vue生命周期是Vue应用的生命周期 Vue脚手架,即vue-cli,使用node.js 来创建和启动vue项目 Vue组件知识,整体之后一个App组件。其他的都挂在在这个根组件上。

    2024年02月15日
    浏览(29)
  • 前端框架Vue学习 ——(四)Axios

    介绍: Axios 对原生的 Ajax 进行了封装,简化书写,快速开发。(异步请求) 官网: https://www.axios-http.cn/ 官网介绍:Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块

    2024年02月05日
    浏览(41)
  • 前端框架学习 Vue (1) 概念,常用指令

            Vue是一个用于 构建用户界面 的 渐进式 框架         1.构建用户界面 :基于数据动态渲染页面                       2.渐进式: 循序渐进的学习(学一点就能用一点)                  (1)Vue核心包开发                         场景:局部模块改造          

    2024年01月22日
    浏览(30)
  • Vue 3.0 学习笔记

    1.vue3简介 2020年9月18日,vue3发布3.0版本,代号大海贼时代来临,One Piece 特点: 无需构建步骤,渐进式增强静态的 HTML 在任何页面中作为 Web Components 嵌入 单页应用 (SPA) 全栈 / 服务端渲染 (SSR) Jamstack / 静态站点生成 (SSG) 开发桌面端、移动端、WebGL,甚至是命令行终端中的界面

    2024年02月03日
    浏览(17)
  • 动力节点|深入浅出Vue框架学习教程,带你快速掌握前端开发核心技能

    Vue是一款流行的JavaScript前端框架,最初由华人开发者尤雨溪创建,并在GitHub上开源发布,它采用MVVM模型的设计思维,专注于UI项目的开发,能够方便地组织和管理页面上的各个组件,大大提高了前端开发的效率。 同时,Vue也具有高度的灵活性和可定制性,使得其在快速开发

    2024年02月13日
    浏览(36)
  • 前端框架学习-ES6新特性(尚硅谷web笔记)

    ECMASript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。javaScript也是该规范的一种实现。 笔记出处:b站 尚硅谷Web前端ES6教程,涵盖ES6-ES11 阮一峰大佬的:ECMAScript 6 入门 ES6 let 使用let声明变量的特点: 不允许重复声 块儿级别作用域 不存在变量提升 不影

    2024年02月12日
    浏览(27)
  • 前端框架Vue-Vue核心

    目录 第1章 Vue核心 1.1 Vue简介 1.1.2 Vue的特点 1.1.3 与其它 JS 框架的关联 1.1.4 学习Vue之前要掌握的JavaScript基础知识 1.1.5 Vue官网 1.1.6 Vue周边库 1.3 模块语法 1.3.1 模板的理解 1.3.2 插值语法 1.3.3 指令语法 1.4 数据绑定 1.4.1. 单向数据绑定 1.4.2. 双向数据绑定 1.4.3 el与data的两种写法

    2024年02月13日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包