-
vue的快速上手
Vue概念
- 是一个用于构建用户界面的渐进式框架
- 优点:大大提高开发效率
- 缺点:需要理解记忆规则
创建Vue实例
步骤:
- 准备容器
- 引包
- 创建Vue实例new Vue()
- 指定配置项el data=>渲染数据
el指定挂载点,选择器指定控制的是哪个盒子
data:提供数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<h1> {{message}}</h1>
<h2>{{count}}</h2>
</div>
</body>
</html>
<script src="js/vue.js"></script>
<script>
const app=new Vue({
el:"#app",
data:{
message:"我是智障",
count:19
}
})
</script>
插值表达式
插值表达式是一种Vue的模板语法
- 作用:利用表达式进行插值,渲染到页面
- 表达式:可以被求值的代码,js会算出一个结果
- 语法:{{表达式}}
- 注意点
- 使用的数据必须存在
- 支持的式表达式而非语法
- 不能在标签属性中使用{{}}插值
Vue的核心特征:响应式
数据改变,视图自动更新
访问数据:实例.属性名
修改数据:实例.属性名=“值”
开发者工具:
- 在拓展中搜索VueDevtools下载安装
- 给他权限
- OK
Vue指令
Vue会根据不同的指令,针对标签实现不同的功能
指令:带有v-前缀的特殊标签属性
v-html
v-html="表达式" ->动态设置元素innerHTML
v-if(条件渲染)
作用:控制元素显示隐藏(条件渲染)
语法:v-if="表达式" 表达式值:true 显示,flase 隐藏
原理:根据条件判断,是否创建或移除元素节点
场景:不频繁切换的场景
v-show(显示隐藏)
作用:控制元素显示隐藏
语法:v-show="表达式"
原理:切换display:none
场景:频繁切换显示隐藏场景
v-if v-else v-else-if
作用:复制v-if进行判断渲染
语法:v-else v-else-if="表达式"
注意:需要紧挨着v-if一起使用
v-on
- 作用:注册事件=添加监听+提供处理逻辑
- 语法:
- v-on:事件名="内联语句“
<button v-on:click="count++">+</button>
//简写
<button @click="count++">+</button>
2.v-on:事件名="methods中的函数名"
注意:
- 内联语句可以直接拿data中的数据
- method中是不能直接访问到data中的数据的,需要的是app.属性
- 在methods中的函数,this都是指向当前实例
- 调用传参
- 可以额外传参
<button @click="func(10)">+10</button>
/.../
methods:{
func(num){
app.count=app.count+num;
}
}
v-bind
作用:动态的设置html的标签属性 ->src url title
语法:v-bind:属性名="表达式" 简写::属性名="表达式"
<div v-else> <img v-bind:src="imageUrl[page]" /> </div>
v-for
作用:基于数据循环,多次渲染整个元素 →数组、对象、数字
语法:v-for="(item,index) in 数组" (item每一项,index下标)
<li v-for="(item,index) in list">
{{item}}
</li>
v-for中的key
<ul>
<li v-for="(item,index) in book" :key="item.id ">
<span>{{item.id}}</span><span>{{item.name}}</span><span>{{item.author}}</span><button @click="fun1(index)">删除</button>
</li>
</ul>
加key相当于每一列加了名字
不加v-for的默认行为会尝试原地修改元素(就地复用)
v-model
作用:给表单元素使用,双向数据绑定--->可以快速获取或设置表单元素内容
语法:v-model="变量"
<input type="text" name="" id="username"v-model="username"><br> <input type="password" id="password" v-model="password"><br>
指令修饰符
通过"."指明一些指令的后缀,不同后缀封装了不同的处理操作 ---》简化代码
按键修饰符
@keyup.enter --> 键盘监听
v-model修饰符
v-model.trim -> 去除首尾空格 v-model.number -> 转数字
事件修饰符
@事件名.stop -->组织冒泡 @事件名.prevent -->组织默认行为
V-bind对于样式控制增强
为了方便开发者进行样式控制,Vue扩展了v-bind的语法,可以针对class类名和style行内样式进行控制
操作class(控制一批属性)
语法: v-bind:class="对象/数组"
1.对象-> 键就是类名,值是布尔值。如果值为true,有这个类,否则没有这个类
<div class="box" :class="{类名:布尔值,类名2:布尔值}"></div>
例子: <a href='#' :class="{blue:index ===activeId}" @click="fn(index)">{{item}}</a>
2.数组-> 数组中的所有类,都会添加到盒子上,本质就是一个class列表
<div class="box" :class="[类名,类名2,类名3]"></div>
例子:<div width="20px" height="100px" :class="['area','pink']">
操作style(控制单个属性的变化)
语法: v-bind:style="样式对象"
<div class="box" :style={css属性名1:css属性子,css属性名:css属性值}"></div>
v-model应用于其他表单元素
- 常见的表单元素都可以用v-model绑定关联 -》快速获取或设置表单元素的值
- 它会根据控件类型自动选取正确的方法来更新元素
input:text ->value textarea ->value input:checkbox ->checked input:radio ->checked select ->value
下一篇:计算属性+声明周期