Vue3。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. 参考资源
https://github.com/vuejs/vue-next
https://vue-composition-api-rfc.netlify.app/
二、初始化项目
系统环境
npm -v
nrm ls
安装@vue/cli
npm install @vue/cli -g
创建项目
vue create 项目名
在项目中安装 vue-next插件,试用Vue3 beta
vue add vue-next
项目变化
import { createApp } from "vue";
import App from "./App.vue"
createApp(App).mount("#app")
启动项目
npm run serve
补充:
vue-devtools 暂不支持Vue 3.0
VSCode中安装Vue 3 Snippets插件
三、setup函数
setup 函数是一个新的组件选项。作为在组件内使用 Composition API 的入口点。
1. 调用时机
setup 函数会在 beforeCreate 钩子之前被调用
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.x 的 Vue.observable()函数
步骤:
按需导入 reactive 函数
import { reactive } from "vue"
调用 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 相比做了一些调整和变化,对应关系如下:
…
作者:Vam的金豆之路
篇幅有限更多请见扩展链接:http://www.mark-to-win.com/tutorial/50755.html
遨游M5iQOO9参数报价对比遨游M5手机机型遨游M5iQOO9最新价格3980元4399元屏幕尺寸5。65英寸6。78英寸屏幕类型IPSAMOLED屏幕色彩1600万色100P3色域分辨率2160108024
苹果的虎年logo,太喜庆了每逢新年都少不了品牌们推出新年限定款这不,眼瞅着2022虎年春节就要到了苹果就推出了一个虎年限定logo虎年logo依旧是以被咬了一口的苹果为原型将外形与老虎元素相结合极简的线条绘
小米11超值换新靠谱吗去年首发小米买的小米11,刚好一年,前几天刚发布了小米12,虽然小米12反向升级,但有个超值保新服务,用11换12可以抵扣39990。83200,如果兑换成功你还是挺划算的,只需要
远程开机远程桌面一条龙,向日葵开机插座C1Pro开箱体验因为工作需要,我偶尔会远程访问公司里的办公电脑,通过向日葵远程控制软件,可以很方便地远程进行文件的调取和文稿发布,这样的工作模式一直沿用至今,工作效率也得到了公司认可。只是近期公司
不得通过机器或人工方式刷榜刷量控评来源人民网人民日报本报北京1月5日电(记者张璁)国家互联网信息办公室5日公布移动互联网应用程序信息服务管理规定(征求意见稿),向社会公开征求意见。征求意见稿规定,应用程序提供者应当
Meta否认操作系统研发受挫,并打起了招聘广告小扎的元宇宙开年不利。时间刚来到2022年不到一周,就传出了自研操作系统受挫的消息。但三个小时后,Meta明确否认了该消息。操作系统的重要性,从这次Meta澄清的速度之快也可窥见一
尼康d610目前买和主流机比画质很差吗?诚挚感谢邀请!尼康D610属于入门级全画幅,2400万价格低廉,如果去和主流机型号,也就是D750D810这种中高端全画幅相比,在像素上与D750没有太大区别,和D810相比,像素
202216芯片资讯快看CPUGPU龙头CES大秀新品台厂后段2年产能大奥援CES2022大展启动,美系CPUGPU三雄英特尔(Intel)超威(AMD)NVIDIA纷纷大秀新产品,由于这类运算芯片类产品
草草收场的CES芯片巨头混战,元宇宙屏宇宙斗法智东西(公众号zhidxcom)作者云鹏编辑心缘智东西1月6日消息,今天,是国际消费类电子产品展览会(CES)开幕的第二天,虽然不少科技巨头都没有选择去美国拉斯维加斯线下参展,但他
抖音服务器带宽有多大,为什么能够供那么多人同时刷?抖音,百度,阿里云,腾讯都是自建的数据中心,都是T级别出口带宽(总出口带宽),也就是达到1T1024Gs的出口带宽,服务器总署基本都在20万台以上,甚至阿里云都超过了100万台。字
现在的网民质量是提升了还是下降了?跟PC时代相比,那是严重下降了。道理很简单,PC时代上网需要一定的条件,受限与文字输入等原因。当时网上公知或者红粉的辩论,还是有内容的。至少正反双方都会提供一定的依据。而对于其他类