尝试vue3.x 新特性 - CompositionAPI

一、初试化项目

1、安装 vue-cli3

npm install -g @vue/cli

2、创建项目

vue create my-project

3、在项目中安装 composition-api,体验 vue3 新特性

npm install @vue/composition-api --save

4、在main.js引入,通过 Vue.use() 进行安装

import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'

Vue.use(VueCompositionApi)
二、setup(props, context){ }

里边放data数据、生命周期、自定义函数

props : 是参数一,接收 props 数据。

context:是参数二,这个上下文对象中包含了一些有用的属性。些属性在 vue 2.x 中需要通过 this 才能访问到,在 vue 3.x 中,它们的访问方式如下:

setup(props, context) {
    context.attrs
    context.slots
    context.parent
    context.root
    context.emit
    context.refs
  }

另外一种简便写法 :将context解构,如下:

//一般用这种,按需引入,节约内存
setup(props,{attrs,slots,parent,root,emit,refs}){
console.log(attrs,slots,....)
}

3.0和2.0对照:

attrs --- this.$attrs
emit  --- this.$emit
listeners --- this.$listeners
parent --- this.$parent
refs --- this.$refs
root --- this.$root


三、reactive (用来声明对象、数组的数据类型)

1、引入 reactive 函数:

import { reactive } from '@vue/composition-api'

2、reactive 里边声明数组/对象

setup() {
     // 创建响应式数据对象
    const state = reactive({count: 0})

     // setup 函数中将响应式数据对象 return 出去,供 template 使用
    return state
}
四、ref(用来声明基础数据类型)

ref用来声明基础数据

model:'login' ; //vue 2.0写法
//引入模块
import { ref } from '@vue/composition-api';
//声明数据
const model = ref('login');//vue 3.0写法
//取值方式
console.log(model.value)  //'login'