想要了解vue知识可以查看vue基础学习目录,在不定时更新中~
Vue语法-插值表达式
学习插值表达式, 在DOM中插入内容,又叫: 声明式渲染/文本插值/大胡子语法
语法: {{ 表达式 }}
//例
<template>
<div>
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
data() { // 格式固定, 定义vue数据之处
return { // key相当于变量名
msg: "hello, vue",
}
}
}
</script>
Vue指令-v-bind动态属性
给dom标签的属性设置Vue变量,对属性动态赋值
-
语法:
v-bind:属性名="vue变量"
-
简写:
:属性名="vue变量"
//例 <a v-bind:href="url">我是a标签</a> <img :src="imgSrc">
Vue指令-v-on事件绑定(事件对象)
可以给Dom标签绑定事件
-
语法
v-on:事件名="methods中的函数"
v-on:事件名="methods中的函数(实参,$event)"
无传参, 通过形参直接接收
传参, 通过$event指代事件对象传给事件处理函数
-
简写:
@事件名="methods中的函数"
```javascript //例 <p>你要买商品的数量: {{count}}</p> <button v-on:click="addFn">增加1个</button> <button v-on:click="addCountFn(5)">一次加5件</button> <button @click="subFn">减少</button> <script> export default { // ...其他省略 methods: { addFn(){ this.count++ }, addCountFn(num){ this.count += num }, subFn(){ this.count-- } } } </script> ```
Vue指令-v-on修饰符
vue对事件进行了修饰符设置, 在事件后面.修饰符名即可使用更多的功能
- 语法
-
@事件名.修饰符="methods里函数"
-
.stop - 阻止事件冒泡 .prevent - 阻止默认行为
//例 <template> <div @click="fatherFn"> <button @click.stop="btn">.stop阻止事件冒泡</button> <a href="http://www.baidu.com" @click.prevent="btn">.prevent阻止默认行为</a> </div> </template> <script> export default { methods: { fatherFn(){ console.log("father被触发"); }, btn(){ console.log(1); } } } </script> ```
-
Vue指令-v-model双向绑定
v-model, 把表单值和Vue变量双向绑定
- 语法
-
v-model="vue数据变量"
-
双向数据绑定: 数据变化 -> 视图自动同步 视图变化 -> 数据自动同步
//v-model在表单标签使用 <template> <div> <div> <span>用户名:</span> <input type="text" v-model="username" /> </div> <div> <span>密码:</span> <input type="password" v-model="pass" /> </div> <div> <span>来自于: </span> <!-- 下拉菜单要绑定在select上 --> <select v-model="from"> <option value="北京市">北京</option> <option value="南京市">南京</option> <option value="天津市">天津</option> </select> </div> <div> <!-- (重要) 遇到复选框, v-model的变量值 非数组 - 关联的是复选框的checked属性 数组 - 关联的是复选框的value属性 --> <span>爱好: </span> <input type="checkbox" v-model="hobby" value="抽烟">抽烟 <input type="checkbox" v-model="hobby" value="喝酒">喝酒 <input type="checkbox" v-model="hobby" value="写代码">写代码 </div> <div> <span>性别: </span> <input type="radio" value="男" name="sex" v-model="gender">男 <input type="radio" value="女" name="sex" v-model="gender">女 </div> <div> <span>自我介绍</span> <textarea v-model="intro"></textarea> </div> </div> </template> <script> export default { data() { return { username: "", pass: "", hobby: [], sex: "", intro: "", from: "" } } }; </script>
-
Vue指令-v-model修饰符
- 语法
v-model.修饰符="vue数据变量"
.number 以parseFloat转成数字类型
.trim 去除首尾空白字符
.lazy 在change时触发而非inupt时
Vue指令-v-html
v-html, 设置内容,会覆盖插值表达式
- 语法
v-html="vue数据变量"
//例 <template> <div> <p v-html="str"></p> </div> </template> <script> export default { data() { return { str: "<span>我是一个span标签</span>" } } } </script>
Vue指令-v-show和v-if
控制标签显示或隐藏
- 语法
v-show="vue变量"
v-if="vue变量"
- 原理
v-show 用的display:none隐藏 (频繁切换使用)
v-if 直接从DOM树上移除
<template> <div> <h1 v-show="isOk">v-show的盒子</h1> <h1 v-if="isOk">v-if的盒子</h1> <div> //v-if 和 v-else相对使用,不满足v-if就执行v-else语句 <p v-if="age > 18">我成年了</p> <p v-else>还得多吃饭</p> </div> </div> </template> <script> export default { data() { return { isOk: true, age: 15 } } } </script>
Vue指令-v-for
v-for, 用数据循环生成标签
- 语法
v-for="(值变量, 索引变量) in 目标结构"
v-for="值变量 in 目标结构"
- 目标结构:
可以遍历数组 / 对象 / 数字 / 字符串
- 注意:
v-for的临时变量名不能用到v-for范围外
同级标签的key值不能重复
vue基础_动态class
用v-bind给标签class设置动态的值
- 语法
:class="{类名: 布尔值}"
vue基础_动态style
给标签动态设置style的值
- 语法
:style="{css属性: 值}"