属性操作
属性语法, vue1中: v-bind:属性名="JS代码"
<a v-bind:href="baidu.href">{{baidu.title}}</a>
复制
vue2语法 :属性名="JS代码"
<a :href="baidu.href">{{baidu.title}}</a>
复制
注意:
-
{{ }} : 仅限在 标签内容中使用
-
: 和不带: 的差异, 不带: 是HTML语法, 值是字符串, 带: 是Vue语法, 值是JS代码, 会运算
<div xx="8+8">1111</div> <div :xx="8+8">1111</div>
复制
动态样式
点击谁, 谁高亮显示, 先书写HTML 再来书写CSS, 其次就是JS啦
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>动态样式</title> <style> ul, li { margin: 0; padding: 0; list-style-type: none; } ul { display: flex; background-color: #002c69; padding: 0 40px; } li { color: #fff; user-select: none; padding: 15px 25px; cursor: pointer; } li.active { background-color: orange; } </style> </head> <body> <div id="box"> <h3>当前序号: {{now}}</h3> <ul> <li @click="now=0" :class="now==0 ? 'active' : ''">首页</li> <li @click="now=1" :class="now==1 ? 'active' : ''">关于净美仕</li> <li @click="now=2" :class="{active: now==2}">公司动态</li> <li @click="now=3" :class="{active: now==3}">产品中心</li> <li @click="now=4" :class="{active: now==4}">联系我们</li> </ul> </div> <script src="./vue.js"></script> <script> new Vue({ el: '#box', data: { now: 0 } }) </script> </body> </html>
复制
数据: 保存当前激活的 项目序号, 现在Vue声明一下当前序号, 然后每一个 li 元素绑定点击事件, 添加class 样式就可以了, 简化语法: 本质上 判断now==几, 是真就active 不是就空, :class="{active: now==几}" , 真就添加active, 假就不添加active
动态style样式
<button @click="size++">变大:{{size}}</button> <p :style="`font-size: ${size}px;`">Hello</p>
复制
-
属性名支持两种写法: 小驼峰 和 蛇形命名法
-
属性名不允许中划线, 必须用字符串才合法
作者提供了优化语法
<p :style="{fontSize: size+'px'}">World</p>
复制