Vue3 基础

引言

vue3 新特性

  • Performance:性能比 vue2.x 快 1.2~2 倍
  • Tree shaking support:支持按需编译,体积更小
  • Composition API:组合 API,类似 React Hooks
  • Custom Renderer API:暴露了自定义渲染 API
  • Fragment,Teleport(Protal), Suspense:新增三个组件
  • Better TypeScript support:更好的支持 TS

学习资源

staging-cn.vuejs
vue3js

npm安装

最新稳定版
$ npm i vue@next

vue3 使用 npm 上可用的 Vue CLI v4.5 作为 @vue/cli
npm i -g @vue/cli

在 vue 项目中运行:

vue upgrade --next

vue3 提供了单文件配套组件

$ npm i -D @vue/compiler-sfc

脚手架安装

vue create 项目名

vue3 新语法

Setup:组合式 api 写法入口,生命周期 beforeCreaed 之前调用

  • setup 新的组件选项是一个接收 props 和 context
  • 可以返回一个对象的函数
  • 作为组件内使用 Composition API 的入口
  • 创建组件实例,然后初始化 props ,调用 setup 函数。会在 beforeCreaed 之前调用
export default {
   
	setup(props,context){
   
		// 在 template 模板中使用的数据和方法需要在 setup 返回
		return{
   
		}
	}
}

context 是一个普通 JavaScript 对象,暴露了其它可能在 setup 中有用的值

setup(props,context){
   
	// Attribute (非响应式对象,等同于 $attrs)
	console.log(context.attrs)
	// 插槽(非响应式对象,等同于 $slot)
	console.log(context.slots)	
	// 触发事件 (非响应式对象,等同于 $emit)
	console.log(context.emit)
	// 暴露公共 property 函数
	console.log(context.expose)
	// 在 template 模板中使用的数据和方法需要在 setup 返回
	return{
   
	}
}
// setup(props,{attrs,slots,emit,expose}){
   
//	...
// }

响应式数据:ref(基本数据类型)&reactive(复杂类型)

基本数据类型:ref
使用 ref 包裹基本数据类型,使用时需要 .value 来获取值

<template>
	<div>
	<h2>{
   {
   msg}}</h2>
	</div>
</template>
<script>
import {
   ref} from 'vue'
export default {
   
	setup(props,context){
   
		// ref 基本数据类型 
		// 定义响应式数据 msg
		let msg = ref('this is a msg')
		const updateMsg = ()=> {
   
			// .value 获取值更新
			msg.value = 'update msg'
		}
		// return 返回值
		return{
   
			msg,
			updateMsg
		}
	}
}
</script>

复杂数据类型:reactive

import {
   reactive} from 'vue'
export default {
   
	setup(props,context){
   
		// reactive 复杂数据类型
		let msgs = reactive({
   
			countent:'text',
			age:12
		})
		const updateMsg = ()=> {
   
			//  获取值更新
			msgs.countent = 'reve'
		}
		// return 返回值
		return{
   
			msgs,
			updateMsg
		}
	}
}

toRefs 将响应式数据对象转变为普通对象,然后将普通对象中的每个属性变为单个响应式对象

导入 toRefs

import {
   toRefs} from 'vue'

在 setup 中返回数据的地方加入 …toRefs 数据

setup(){
   
	const msgs = reactive({
   
		
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值