• vue初学(2)


    第三课

    以下都是假设要点击文字变色,再次点击变回来。

    一、添加class绑定

    1、class对象绑定:

    • 给元素添加click事件;
    • 给元素用v-bind添加class,后面class那里的意思是:给div添加一个class属性,名字为activated,但是不是一开始就有这个名字,要在isActivated为真的时候才给这个添加的类加上名字
    <div @click='handleDivClick'
    	:class='{activated: isActivated}'
    >
    
    • 给vue实例里添加isActivated数据,初始为false,并且添加isActivated方法来实现点击切换的效果:
    handleDivClick: function() {
    					this.isActivated = !this.isActivated;
    				}
    
    • 记得在css里添加activated类来实现样式

    2、添加数组class名

    • 给元素添加click事件;
    • 依然给元素用v-bind添加class,这次添加的class名直接用vue实例里的一个数据表示,而这个数据一开始为空字符串,后续可以通过改变这个变量的值来控制样式
    • (实际上class后面字符串里的内容是一个数组,可以添加多个类
    <div @click='handleDivClick'
    			:class='[activated]'
    		>
    
    • 后来通过逻辑关系,写出handleDivClick里的内容:
    handleDivClick: function() {
    					this.activated = this.activated==='activated'?'':'activated';
    				}
    

    二、style

    1、style对象绑定

    • 和上面几乎一样,只是把class换成style;
    <div @click='handleDivClick'
    			:style='styleObj'
    		>
    
    • 在vue实例中添加styleObj数据对象,数据初始化为,颜色样式设置为black。再设置handleDivClick函数:
    handleDivClick: function() {
    					this.styleObj.color = this.styleObj.color==='black'?'pink':'black';
    				}
    

    2、添加数组style对象

    • 几乎和上面class第二部分一致,也可以绑定多个对象,不再赘述。
    <div @click='handleDivClick'
    			:style='[styleObj]'
    		>
    

    三、列表渲染

      其实官方文档里已经很详细了,使用方法也不再多说,这里就做一点补充与提示。

    1、数组更新检测

    • 在vue数据的数据里直接用赋值的方式来改变数组元素,并不会触发视图更新,也就是不会在改变之后立马显示在屏幕上,下面举个例子

    • 页面内容为遍历vue中list数据里的内容输出,list为

    //list数组
    list:[9,1,2,4,2,5]
    //要显示的标签
    <div v-for='item of list'>{{ item }}</div>
    
    //页面显示为 9 1 2 4 2 5
    //这时在控制台输入 app.list[4] = 0
    //并不会让视图更新
    //而如果输入app.list.sort()就会立马更新视图
    
    • 所以可以看到并不是所有对数组操作的方法都会触发视图更新,Vue 将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新。这些被包裹过的方法包括:
      • pop() —— 删除最后一个元素
      • push() —— 在最后添加一个元素
      • shift() —— 删除第一个元素
      • unshift() —— 在最开始添加一个元素
      • sort() —— 排序
      • splice() —— 分割
      • reverse() —— 逆转

    2、v-for来遍历对象

    • v-for不仅可以遍历数组,同样可以用对象来渲染,其中可以通过key或name来表示数组的键,再用个变量来表示值,即
    <div v-for='(item,name) of items'>{{ name }} --- {{ item }}</div>
    
    

    3、用set方法改变数组和对象元素

    • 上面说了,如果在控制台直接用数组赋值的方式来改变,是不会直接显示在页面上的;
    • Vue中和Vue实例中分别提供了set和$set方法,使用方法如下:
    //本来vue实例中数组为 list: [9, 2, 5, 3, 0]
    //在屏幕上打印之后我们在控制台输入,
    list[3] = 99  //无反应
    Vue.set(app.list, 3, 100) //数组变化显示了
    app.$set(app.list, 3, 100) //vue实例的方法
    
    
    • 两种set的使用方法几乎一样,效果也一样:
    • Vue.set('要更改的数组名', 位置(键), 值)
    • app.$set('要更改的数组名', 位置(键), 值)
  • 相关阅读:
    spring-boot 在启动运行脚本中执行修改表结构,执行前校验表结构是否符合,如果不符合就修改
    Ehcache flush() 源码阅读笔记
    关于超时的实现---利用Timer
    java 基础笔记--Map
    spring-boot+mybatis+ehcache实现快速查询
    笔记---html输入限制
    spring boot thymeleaf模板url上的参数传递
    xcode 8   去除无用打印信息
    项目整理 (一)
    FMDB最简单的教程-3 清空数据表并将自增字段清零
  • 原文地址:https://www.cnblogs.com/TRY0929/p/13098685.html
Copyright © 2020-2023  润新知