| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Vue修炼系列教程 - 筑基篇2 -> 正文阅读 |
|
[JavaScript知识库]Vue修炼系列教程 - 筑基篇2 |
前言回顾上一篇,我们讲了vue基本的响应式特征,以及@ + 事件的绑定和vue自带指令v-if、v-show的使用,今天我们接下去修炼(顺便打个广告,文末有我的公众号,友情关注一下啦,嘿嘿) 开始修炼假如我们要动态更改dom上的属性要怎么做呢,比如 我们想实现一个,点击按钮让按钮的文字变红,其实就是将className从none改成red(css样式我们写在style标签里),当然你要是说绑个click事件,然后点击的时候让button.style.color = ‘red’当然也是可行,不过我们不提倡这么做,假如我这个时候在提个要求font-size同时也要变20px,往往你需要在写一遍button.style.fontSize =? ‘20px’,多了你就不好维护了(这时候可能还有人会说,那我封装个方法,专门用来批量更改这种样式,当然做法都是正确的,但是我们追求的是高维护性、高可读性的代码,我们看下面的代码就知道使用vue的简洁了)。vue中提倡我们尽量使用数据去驱动视图渲染,尽量去减少操作dom,可以这么写 ?我们增加一个变量buttonClass来驱动class属性的变更,可以看到上面写了个:class,vue中使用冒号的形式可以将变量绑定到属性上(冒号绑定的不一定是一个变量也可以是一个表达式的返回比如:disabled="num === 1",表示当num变量为1时disabled属性就为true),由于点击时候改变值,要告诉vue触发视图渲染,需要让buttonClass具有响应式,所以我们用ref包裹一层,点击的时候改变他的值为red,就做到了点击切换button class属性的功能,点击效果如下 ?聪明的小伙伴会发现,此时我们如果不单要让它变红色,还要让font-size变20px,我们只需要加在css中就可以 ?像这样是不是变得很容易呀,看下效果 你还可以直接绑定他的style属性来动态控制,像这样 ?我们把class都去掉,使用一个buttonStyle来控制button的样式,这里需要注意vue绑定style需要传对象,如果style绑定为null则表示没有style属性,再来看看效果,发现效果是一样的 项目中我们推荐尽可能地使用class的方式去更替样式(比如点击某个tab、某个按钮要高亮),因为对于开发人员直觉来说样式一般都写在css里,不用去关心js的逻辑,维护性会更高。当然有时候你要精确控制一些dom的样式,比如要做拖拽啥的,就很可能需要用到绑定style的方式,各有各的好处。 我们接下去讲一个新场景假如我们想渲染一个3个按钮,我们可以这样写 得到效果 如果我们想再加两个按钮,菠萝和荔枝 ?我们可以再加两个button,聪明的伙伴会发现其实这些渲染的视图本质上都是button,只不过他们的内容不一致,有什么办法可以更加简单的维护他们呢,这个时候v-for就出场了,我们可以改成这样 ?上一篇有讲到,v-开头的都叫指令比如vue自带的指令v-if、v-show,而v-for是vue自带的另一个指令,从字面意思就能理解,看到for就让人想到for循环,上面定义一个数组,使用v-for对list做循环渲染,而list数组中的每一项就是可以使用一个临时变量item表示(你要命名a、b也行啦,不过不建议这么命名,看不懂啥意思,不好维护),刚好对应相应水果的名字,而且v-for一定要绑定一个key属性,而且必须是独一无二的(想深入的同学可以查下vue的diff,这里不展开,简单概括就是当list数据发生改变时,vue会使用算法比较变化前后的节点,如果改变前后节点key、标签等相同,则说明该节点没改变,直接复用,否则做更替或者删除,比对所有数据重新渲染一遍的性能相比,提升了很多)。这样是不是看起来好维护多了呢,如果想再加其他水果只需在数组中添加就行,不用再去copy dom的代码了,效果如下 今日作业(答案在下方,建议尝试自己写看看哦)有苹果、橘子、香蕉三个按钮,点击其中一个按钮,按钮边框会变红色,这时点击另一个按钮,之前的按钮颜色还原,新被点击的按钮变红色 答案
效果这章节讲了dom属性的绑定和v-for的使用,文章还在持续更新中~ |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:45:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |