先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
💗 功能二: 在输入框中输入内容后按enter键,即可把内容添加到下面的列表中(如果内容为空则不添加)
在UserHeader.vue组件里面为表单绑定一个回车事件,配置一个add事件,添加一个任务
<input
type=“text”
placeholder=“请输入你的任务名称,按回车键确认”
@keyup.enter=“add”
v-model=“title”
/>
如何通知App组件去添加一个todo对象 也就是将包装好的todoObj对象传递给App组件?
利用props配置可以实现父组件给子组件传值的操作,此功能需求得实现子组件传值给父组件的操作
因为添加任务的是由UserHeader组件添加数据到UserList组件,而两者的关系是兄弟关系,只有借助它们共同的父组件进行间接传值的操作
思路:父组件提前给子组件传递一个函数,子组件将需要传递给父组件的值通过参数的形式传递
App组件提前给子组件传递一个函数addtodo
methods: {
//添加一个todoObj
addtodo(todoObj) {
//往data里面添加数据,data数据改变了,重新解析模版
this.todos.unshift(todoObj);
},
UserHeader子组件:
随机生成一个唯一的id
安装: npm i nanoid
导入:import {nanoid} from ‘nanoid’
使用:id: nanoid()
props: [“addtodo”],
methods: {
add() {
//校验数据
if (!this.title.trim()) {
alert("数据不能为空");
}
//添加一个信息 也可以直接用e.target.value拿到这个输入的值
// 将用户的输入包装成一个todoObj对象
const todoObj = { id: nanoid(), title: this.title, done: false };
//通知App组件去添加一个todo对象 也就是将包装好的todoObj对象传递给App组件
this.addtodo(todoObj);
//清空输入
this.title = " ";
},
},
💗 功能三: 动态计算有几个已完成的任务以及所有的任务
此时需要在UserFooter组件中通过计算属性计算得出已完成的任务
computed: {
doneTotal() {
return this.todos.reduce((pre, todo) => pre + (todo.done ? 1 : 0), 0);
},
},
arry.reduce()方法:
reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。
第一个参数:累计器累计回调的返回值; 它是上一次调用回调时返回的累积值
第二个参数:数组中正在处理的元素。
计算所有的任务
方法一:最简单的方法
todos.length
第二种:计算得出
total() {
return this.todos.length;
},
💗 功能四、点击复选框,实现选中或不选中效果(即完成或未完成)双向绑定
借助UserList 组件实现UserItem和App组件之间互相传值
UserItem组件:
UserFooter组件:
isAll: {
get() {
//返回的是布尔值
return this.doneTotal === this.total && this.total > 0;
},
set(value) {
this.checkAlltodo(value);
},
},
App 组件:
methods: {
//勾选或者取消勾选一个todo
checktodo(id) {
this.todos.forEach((todo) => {
if (todo.id === id) {
todo.done = !todo.done;
}
});
},
//全选或不全选todoObj
checkAlltodo(done) {
this.todos.forEach((todo) => {
todo.done = done;
});
},
},
💗 功能五、删除单个任务以及删除已完成任务
App.vue 组件
<UserList
:todos=“todos”
:checktodo=“checktodo”
:deletetodo=“deletetodo”
/>
<UserFooter
:todos=“todos”
:checkAlltodo=“checkAlltodo”
:clearAlltodo=“clearAlltodo”
/>
结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-v30vzWkh-1713545291355)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!