02 | 上手:一个清单应用帮你入门Vue.js
大圣
该思维导图由 AI 生成,仅供参考
你好,我是大圣,欢迎进入课程导读篇的第二讲。
在上一讲中,我带你了解了前端框架的基本发展历史。在为什么要学 Vue 框架这个问题上,相信你现在已经有了自己的答案。那么从今天开始,我们正式进入上手学 Vue 的阶段。
我们的专栏课程会通过故事的形式展开。故事的主角小圣是一名刚入行的前端工程师,在校期间学了点 HTML、CSS 和 JavaScript,但是不太懂框架。我是他的经理,会手把手教他在 Vue.js 这个框架里打怪升级。
小圣在学习 Vue 的过程中碰到的各种问题,同样也可能是你会碰到的问题。所以,在我带着你一起解决小圣面临的问题的同时,你的很多问题也会迎刃而解。
今天是小圣第一天入职,他只知道团队的项目是用 Vue.js 开发的,但并不熟悉 Vue 的具体技术细节,所以我决定带他先做一个清单应用,先在整体上熟悉这个框架。当然了,我在这里带小圣做的清单应用,更多的是一种模拟的场景,并不需要对号入座到真实的工作场景下。毕竟在真实的工作场景下,可能小圣一进公司就上实际的项目了。
如果你已经很熟悉 Vue 开发了,可以直接粗略地把本讲过一遍,直奔下一讲。在那里,我会带你梳理 Vue 3 的新特性,相信这些新特性会让你对 Vue 3 产生新的期待。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Vue.js是一个流行的前端框架,本文以一个清单应用为例,带领读者入门Vue.js的开发。文章首先介绍了环境准备和任务分解,然后对比了jQuery和Vue.js的开发思路差异,强调了Vue.js的数据驱动页面的特点。接着详细讲解了清单页面的渲染和处理用户交互的方法。通过故事化的方式,读者可以跟随主角小圣的学习过程,了解Vue.js的基本开发思路和语法特点。 在实现清单应用的过程中,文章介绍了如何改造数据结构以支持标记清单中某一项是否完成的功能,并使用Vue.js的特性来实现复选框功能、显示未完成项目比例以及清理已完成项目的功能。此外,还介绍了Vue.js的计算属性和条件渲染的使用,以及如何优化页面数据的显示。 总的来说,本文适合初学者快速了解Vue.js的基本概念和开发方式,为进一步深入学习打下基础。通过故事化的讲解和实际代码示例,读者可以轻松理解Vue.js的核心概念和应用方法,为日后的前端开发打下坚实基础。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《玩转 Vue 3 全家桶》,新⼈⾸单¥68
《玩转 Vue 3 全家桶》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(82)
- 最新
- 精选
- ch3cknull交作业: 仅前端缓存:在unmount组件时,将 组件的 data 存到 localStorage ,mount组件时取出。 如果后端有接口的话,可以在unmount时,同步到后端,挂载时请求接口 考虑用户体验,如果离线在线都可修改,可以考虑给todo的每一项加个最后修改时间,挂载时把本地缓存数据和接口数据合并,当冲突时,只留下最新数据
作者回复: 回答正确!
2021-10-20799 - www全选按钮使用 set 和 get 进行处理,真是妙啊。 这一个方法就值了🎫了
作者回复: 哈哈 感谢感谢 computed的妙用
2021-10-20756 - ll思考题:这个涉及到页面状态保存,方法有很多,大概两类: 1. 本地储存: a. localstorage b. workers c. router,也可以存到 route 中 d. 存到本地文件 2. 服务端:这个就是将状态保存到服务器,通过 axios 等方式和服务器交换数据等
作者回复: 赞呀,方案比我想的还多 localstorage和接口是最常见的
2021-10-20537 - 老杨头交作业 : 通过watch监听数据变更并存储到localStorage中,然后在mounted时加载数据 watch: { todos: {//监听数据变更 handler(newVal, oldVal) { console.info("todos->change") //TODO::原来是在unmount时才保存的,但unmount代码没有执行,所以换成wathc了,不知道为什么unmount没有执行 localStorage.setItem("todos", JSON.stringify(this.todos)) }, deep: true } }, mounted() { //加载数据 var todos = localStorage.getItem("todos"); if(todos) { this.todos = JSON.parse(todos); } }, unmounted() { //保存数据 localStorage.setItem("todos", JSON.stringify(this.todos)) }, 原来是在unmount时才保存的,但unmount代码没有执行,所以换成wathc了,不知道为什么unmount没有执行
作者回复: 很赞的总结呀 cool
2021-10-25413 - 杨村长交作业:将数据存入localStorage,刷新时再取出来展现 1.保存:watch一下todoList,变化存入 2.读取:data设置为localStorage中读出的数据
作者回复: 100分100分
2021-10-2212 - 南山打卡 1. 保存时机,在unmount的生命周期进行保存 2. 使用浏览器客户端存储,如sessionStorage,LocalStorage等api保存,保存时添加时间戳用于比对新老数据,使用服务端保存接口,将数据持久化到数据库,考虑接口请求失败时重试机制和友好提示 3. 客户端存储在在data定义时直接从localStorage等获取,服务端接口在created周期请求获取数据并给data赋值 4.考虑保存失败的情况,可以监听数据变化做自动保存
作者回复: 赞赞赞,还考虑了保存失败的异常
2021-10-2012 - mixiuu仅刷新页面,并不会出发unmounted生命周期,在仅刷新页面的场景下可以在created生命周期里监听beforeunload事件,如果有todos,存入localstorage中
作者回复: 妙啊,感谢提出
2021-10-28211 - 桃子-夏勇杰{{active}} / {{all}} 这里为什么要做成2个属性而不是直接做个1个属性呢?
作者回复: 其实完整的应用,all还会在别的地方用到 就没有合并
2021-10-2226 - 付帅帅目前能想到的持久化方案: 一个是借助后端让数据入库,还有就是 localStorage 这种浏览器本地持久化
作者回复: 赞,localStorage对我们这个Demo就够用了
2021-10-206 - 洪布斯在给输入框绑定事件 `addTodo` 时,把 `keydown` => `keyup` 是不是更合适,`keydown` 在按键按下时,会一直触发事件。或者做一个非空判断也可~
作者回复: 有道理
2021-11-135
收起评论