vue.js的学习(三)

vuejs 李宜发
文章标签: vue.js的学习(三)

第7节 表单输入绑定

html的代码
<div id="app">
        <label>你的爱好:</label>
        <form>
            <input type="checkbox" v-model="hobby" value="听音乐">听音乐
            <input type="checkbox" v-model="hobby" value="爬山">爬山
            <input type="checkbox" v-model="hobby" value="打篮球">打篮球
            <input type="checkbox" v-model="hobby" value="踢足球">踢足球
        </form>
        <div>
            {{hobby}}
        </div>
        <div>
            <label>记住密码:</label>
            <input type="checkbox" v-model="remeber"> {{remeber}}
        </div>
        <div>
            <label>性别:</label>
            <input type="radio" v-model="sex" value="男">男
            <input type="radio" v-model="sex" value="女">女
            <p>{{sex}}</p>
        </div>
        <div>
            <label>你的专业:</label>
            <select v-model="project">
                <option value="C#">C#</option>
                <option value="java">java</option>
                <option value="web前端">web前端</option>
                <option value="大数据">大数据</option>
            </select>
        </div>
        <div>{{project}}</div>
    </div>
js代码
 var vm = new Vue({
            el: "#app",
            data: {
                hobby: ["听音乐"],
                remeber: false,
                sex: "男",
                project: "java",
            }
    })

第8节 Class 与 Style 绑定

1.绑定 HTML Class

1.1对象语法 

多个类样式 v-bind:class="{ active: isActive, 'text-danger': hasError }"

注意:类名有中横杆用引号括起,例如 'text-danger',这是js命名规则决定的。

{font-size:23} //错误
{'font-size':23} //正确
{fontSize:23} //正确
1.1.1对象定义在data上
<div v-bind:class="classObject"></div>

data: {
  classObject: {
    active: true,
    'text-danger': false
  }
}
对象定义在计算属性上
<div v-bind:class="classObject"></div>

data: {
  isActive: true,
  error: null
},
computed: {
  classObject: function () {
    return {
      active: this.isActive && !this.error,
      'text-danger': this.error && this.error.type === 'fatal'
    }
  }
}

1.2数组语法

单个元素的数组
<div v-bind:class="[activeClass, errorClass]"></div>

data: {
 activeClass: 'active',
 errorClass: 'text-danger'
}

渲染为:

<div class="active text-danger"></div>

如果你也想根据条件切换列表中的 class,可以用三元表达式:

<div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>

对象数组(常用)结合了对象和数组的特点,更加的灵活。
<div v-bind:class="[{ active: isActive }, errorClass]"></div>
 

2.绑定内联样式- v-bind:style

2.1对象语法

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
 activeColor: 'red',
 fontSize: 30
}
font-size变成fontSize 去样式名的中横杆采用驼峰命名。

直接绑定到一个样式对象通常更好,这会让模板更清晰:
<div v-bind:style="styleObject"></div>
data: {
  styleObject: {
    color: 'red',
    fontSize: '13px'
  }
}

2.2数组语法 

 v-bind:style="[baseStyles, overridingStyles]"

还能输出{{restrictNumber}}个字符  
  • {{reply.author}}

    {{CommonUtil.formateDate(reply.ac_CommentDate).shortTime}}
  • 回复了{{Comments.author}} :