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.0的新特性以及快速上手,vue2.0升级成3.0 -> 正文阅读

[JavaScript知识库]vue3.0的新特性以及快速上手,vue2.0升级成3.0

前端技术更新的非常迅速,我们也不能停下我们学习的脚步,vue3.0也是对学会2.0的开发者非常的友好,能够非常轻松的上手。而且 Vue3中兼容Vue2中定义组件的写法。

一、创建一个3.0项目

既然要使用vue3.0肯定就是要创建一个vue3.0的项目,我们可以通过以下几种方式创建
1、使用vue create 搭建新项目
2、使用vueUI
前两种可以在选择配置项的时候,选择3.0即可
在这里插入图片描述

3、已有的vue2.0项目升级成3.0
Vue3中兼容Vue2中定义组件的写法,所以只需要将入口文件 main.js 中创建Vue实例的代码替换为使用Vue3中新引入的 createApp方法,来创建应用程序实例的方式即可。

Vue 2 main.js:

import Vue from 'vue'
import App from './App.vue'

new Vue({
    render: h => h(App),
}).$mount('#app')

Vue 3 main.js:

import { createApp } from 'vue'
import App from './App.vue'

createApp(App).mount('#app')

二、Composition API(组合 API):

Composition API(组合 API),在我个人认为这是vue3.0最大的亮点,当组件变得越来越大时,逻辑关注点的列表也会增长。这可能会导致组件难以阅读和理解,且碎片化使得理解和维护复杂组件变得困难,如果能够将同一个逻辑关注点相关代码收集在一起会更好。而这正是组合式 API 使我们能够做到的。

既然我们知道了为什么,我们就可以知道怎么做。为了开始使用组合式 API,我们首先需要一个可以实际使用它的地方。在 Vue 组件中,我们将此位置称为 setup。
setup
  1、 beforeCreate:表示组件刚刚被创建出来,组件的data和methods还没有初始化好
Created: 表示组件刚刚被创建出来,并且组件的data和methods已经初始化好

2、setup函数是 Composition API(组合API)的入口

3、在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用
4、data() 变为 setUp()
5、 接收props对象作为第一个参数,接收来的props对象,可以通过watchEffect监视其变化。
6、接受context对象作为第二个参数,这个对象包含attrs,slots,emit三个属性。
7、setup里面是没有this的,setup函数是处于生命周期函数 beforeCreate 和 Created 两个钩子函数之间的函数 也就说在 setup函数中是无法 使用 data 和 methods 中的数据和方法的
8、setup里的生命周期

import {
  onBeforeMount,
  onMounted,
  onBeforeUpdate,
  onUpdated,
  onBeforeUnmount,
  onUnmounted,
  onRenderTracked,
  onRenderTriggered,
} from "vue";
export default {
  components: {},
  data() {
    return {};
  },
  setup() {
    // setup里面存着两个生命周期创建前和创建后

    // beforeCreate
    // created

    onBeforeMount(() => {
      console.log("onBefore   ====>  vue2.0 x beforemount");
    });
    onMounted(() => {
      console.log("onMounted  ====>  vue2.0 x mount");
    });
    onBeforeUpdate(() => {
      console.log("onBeforeUpdate  ====>  vue2.0 x beforeUpdate");
    });
    onUpdated(() => {
      console.log("onUpdated  ====>  vue2.0 x update");
    });
    onBeforeUnmount(() => {
      //在卸载组件实例之前调用。在这个阶段,实例仍然是完全正常的。
      console.log("onBeforeUnmount ====>  vue2.0 x beforeDestroy");
    });
    onUnmounted(() => {
      //卸载组件实例后调用,调用此钩子时,组件实例的所有指令都被解除绑定,所有事件侦听器都被移除,所有子组件实例被卸载。
      console.log("onUnmounted ====>  vue2.0 x destroyed");
    });
    // 新增两个生命周期函数
    //每次渲染后都执行
    onRenderTracked(({ key, target, type }) => {
      console.log("onRenderTracked");
    });
    //每次触发页面重新渲染时自动执行
    onRenderTriggered(({ key, target, type }) => {
      console.log("onRenderTriggered");
    });
    return {};
  },
};

setup的参数

1、props
props是setup的第一个参数,是组件外部传入进来的属性,与vue2.0的props基本是一致的

export default {
	props:{
  	num:{
    	type:Number,
      	default:""
    }
  },
  setup(props){
  	conosle.log(props.num)
  }
}

注意:在setup中,props是不能解构的
2、context
context是setup的第二个参数,context是一个对象,里边包含了三个属性。分别是
attrs:attrs与vue2.0的this.$attrs是一样的,即外部传入的未在props中定义的属性。我们不能对attrs使用解构。

slots:slots对应的是组件的插槽,与Vue2.0的this.$slots是对应的,slots也是不能解构的。

emit:emit对应的是Vue2.0的this.$emit

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:27:32  更:2021-07-10 14:29:04 
 
开发: 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/8 12:28:43-

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