…
let shareProp = ref(‘hallo,v2’);
let info = reactive({name:‘jac’});
const changeProp = ()=>{
shareProp.value = ‘hallow,v3’;
}
return {
shareProp,
…
}
},
mounted() {
console.log(this.shareProp)
},
}
小伙伴可以根据自己的编码习惯选择运用。
toRef & toRefs
有时候我们想通过解构的方式从一个复杂的响应式变量中剥离出一些变量时,我们的代码可能是这样的:
<button @click=“changeObj”>my name is {{info.name}}
这样会使我们解构出来的两个property失去响应性,这个时候我们需要使用toRef
和toRefs
从中解构出来,toRef
用于解构出单个property的响应式变量,toRefs
是将源对象中所有property都创建响应式变量,在通过解构的方式创建我们对应的变量。
<button @click=“changeObj”>my name is {{info.name}}
watch & computed & 注册生命周期钩子
在Setup
中我们还能watch
属性,创建独立的computed
,还可以注册各种生命周期钩子,由于Setup
执行的阶段是围绕beforeCreate
和created
和进行的,所以原本在这两个生命周期中做的事情都能够放在Setup
中处理。
…
// 输出结果如下:
我首先执行
created执行了
onMounted也执行了,结果输出如下
0
总计数:1
mounted执行了
看的出来,Setup
中注册的生命周期钩子函数要比外面注册的钩子函数先执行!
provide & inject
provide
和inject
通常情况下我们在业务场景中使用不多,但在写插件或组件库的时候还是有用的,provide
和inject
用于在"祖"组件提供属性,在子组件中注入使用。在setup中怎么使用呢?
// demo组件中提供
// test组件中注入使用
…
以上是setup
的基本应用,需要好好的感受它还需要在多种场景下去实际运用,才能更好的理解它棒在哪里,比如下面这段代码:
// a.js
import { ref, onMounted } from ‘vue’
export default function doSomething(refName,fn){
const a = ref(0);
const b = ref(0);
// …,
onMounted(() => {
fn();
})
return {
a,
b
}
}
//b.js
import doSomething from ‘./a.js’;
setup(){
const {a,b} = doSomething(‘box’,()=>{
console.log(‘执行’);
})
}
我随便举的一个例子,假设你有一段逻辑在多个页面都需要用到,那我们可以将这段逻辑抽离出来,这样让我们的代码更精简,我们不仅可以让组件复用,在也能更大幅度的提高一些业务代码的复用,还能集中处理业务代码,我相信对于我们的开发体验还是代码质量,都大有裨益。
- v-model
v3中改变了v-model默认属性值和触发方法,value
=>modelVale
,input
=>update
。在自定义的组件中,允许我们同时设置多个v-model。
// Demo.vue
export default {
name: “Demo”,
props: {
title:String,
label:String
},
methods: {
titleEmit(value) {
this.$emit(‘update:title’, value)
},
labelEmit(value) {
this.$emit(‘update:label’, value)
}
},
}
// 调用Demo.vue
- Typescript的支持
v3推荐使用Typescript
,Typescript
不仅支持ES6
的特性,还具备类型推导,可以帮助我们在开发的过程中就避免很多类型错误,在前端越来越复杂的现在,Typescript
能够支撑应用走的更远,在可维护性和扩展性上都更有优秀,拥抱改变。
怎么创建vue3+typescript的应用呢?
1.用vue-cli
yarn global add @vue/cli@next
# OR
npm install -g @vue/cli@next
// 下面按部就班的创建
2.采用vite(个人推荐,简单省事)
yarn create vite-app my-vue-ts --template vue-ts
啪!没啦
这一节我们就从应用层面简单的了解了一下v3的一些改变,没有深挖原理与实现。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
前端框架
前端框架太多了,真的学不动了,别慌,其实对于前端的三大马车,Angular、React、Vue 只要把其中一种框架学明白,底层原理实现,其他两个学起来不会很吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。
以 Vue 为例,我整理了如下的面试题。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
吃力,这也取决于你以后就职的公司要求你会哪一个框架了,当然,会的越多越好,但是往往每个人的时间是有限的,对于自学的学生,或者即将面试找工作的人,当然要选择一门框架深挖原理。
以 Vue 为例,我整理了如下的面试题。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算