VUE基础 · 绑定(1)
2024-09-08 19:22:21
前端三大框架:Angular.js、React.js、Vue.js,目前最热的是Vue,并且使用的热度还在递增中。
Vue已经将操作页面的方法封装好,我们只需要对数据进行修改就可以完成页面的显示。Vue核心思想:只要改变数据,页面就会发生改变
Vue的Js源码库:https://v2.cn.vuejs.org/v2/guide/installation.html
一、导入VUE
<script src="https://unpkg.com/vue/dist/vue.js"></script>
vue实例
- el:vue接管的div元素,注:只可以接管一个div,所有需要vue处理的,必须需要这个div内。
- data:存放数据
- methods:方法
二、标签关联Vue
1、div标签关联vue
<body>
<!-- VUE只能接管一个div-->
<div id="app"> <!--模板语言-->
{{msg}} </div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script>
//创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
msg:'test'
}
})
</script>
</body>
展示:
已把msg的值渲染到了页面中
2、input标签关联vue中methods
<body>
<!-- VUE只能接管一个div-->
<div id="app"><input type="button" @click="login" value="登录">
</div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script> //创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
msg:'test'
},
//存储所有的vue的方法
methods:{
login:function () {
//this代表Vue这个对象,下边是取到了data中的msg
alert(this.msg) } }
}) </script>
</body>
展示:
三、指令
带有v-的在vue中叫做指令,就是声明Vue中的指令,指令实际就是vue封装的一些Js操作方法,当数据值发生变更后,将其产生的影响,作用与DOM中,创建的指令v-bind、v-on、v-if、v-for
1、v-on(绑定事件)
- 全写模式:v-on:click
- 简写模式:@click(推荐使用)
click对应的方法是:methods中的方法
<body>
<!-- VUE只能接管一个div-->
<div id="app"> <!--模板语言-->
{{msg}}---{{count+1}} <input type="button" @click="login" value="登录"> </div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script> //创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
msg:'test',
count:0
},
//存储所有的vue的方法
methods:{
login:function () {
//this代表Vue这个对象,下边是取到了data中的msg
this.msg='v-on方法'
}
}
}) </script>
</body>
点击【登录】前:
点击【登录】后:
2、v-bind(标签属性绑定)
- 全写模式 v-bind:href
- 简写模式 :href
可以绑定方法中的data的数据使用
在魔板语言中,我们可以通过 {{ data }} 的形式将data中的数据渲染到页面上,如果我们将data中的属性赋值给标签的属性时,就不能用 {{ data }} 格式来写了,而是需要用到属性来绑定:
<body>
<!-- VUE只能接管一个div-->
<div id="app">
<!-- 完整写法 -->
<a v-bind:href="url">百度</a> <!-- 缩写-->
<a :href="url">跳转到百度地址</a> </div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script> //创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
msg:'test',
count:0,
url:'http://www.baidu.com'
},
//存储所有的vue的方法
methods:{
login:function () {
//this代表Vue这个对象,下边是取到了data中的msg
this.msg='v-on方法'
}
}
}) </script>
</body>
(1)class中数组的绑定方式
<head>
<meta charset="UTF-8">
<title>学无止境</title> <style>
.bg{
background-color: aqua;
width: 100px;
height: 100px;
}
.box{
border: 2px red solid;
}
</style> </head>
<body>
<!-- VUE只能接管一个div-->
<div id="app">
<!--动态的css绑定-->
<!--方式1:直接绑定-->
<div :class="['bg','box']"></div> <!--方式2:关联绑定-->
<div :class="classes"></div>
</div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script>
//创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
classes:['bg','box']
},
//存储所有的vue的方法
methods:{
}
}) </script>
</body>
练习:
需求:通过点击【按钮】把上边图片的红色边框去掉
<head>
<meta charset="UTF-8">
<title>学无止境</title> <style>
.bg{
background-color: aqua;
width: 100px;
height: 100px;
}
.box{
border: 2px red solid;
}
</style> </head>
<body>
<!-- VUE只能接管一个div-->
<div id="app">
<!--关联绑定-->
<div :class="classes"></div>
<!--绑定方法,通过点击把【classes】替换成只有:bg属性-->
<input type="button" value="changeClass" @click="changeClass">
</div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script>
//创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
classes:['bg','box']
},
//存储所有的vue的方法
methods:{
changeClass:function () {
this.classes = ['bg']
}
}
}) </script>
</body>
(2)绑定class,{}方式绑定(class属性字典的写法)
<head>
<meta charset="UTF-8">
<title>学无止境</title> <style>
.bg{
background-color: aqua;
width: 100px;
height: 100px;
}
.box{
border: 2px red solid;
}
</style> </head>
<body>
<!-- VUE只能接管一个div-->
<div id="app">
<!--关联绑定 bg、box为false时,也可引用变量is_bg、is_box,则不展示该属性 -->
<div :class="{bg:true,box:true}"></div>
</div>
<!--导入-->
<script src="../js/vue.js"></script> <!--编写VUE代码-->
<script>
//创建对象
new Vue({
// 接管的标签
el:'#app',
// 数据源
data:{
classes:['bg','box'],
is_bg:true,
is_box:true
},
//存储所有的vue的方法
methods:{
changeClass:function () {
this.classes = ['bg']
}
}
}) </script>
</body>
(3)绑定class(class属性数组的写法)
<!--数组的写法中,每个值代表一个样式,所以要写成字符串-->
<p v-bind:class="['blue','red']">蓝色字体红色背景色</p>
<!--如果isBlue为真,则blue显示,否则为空,则不显示-->
<p v-bind:class="[isBlue?'blue':'','red']">蓝色字体红色背景色</p
最新文章
- 区间dp总结篇
- python 协程
- 【转】c# 调用windows API(user32.dll)
- POJ 1659 Frogs&#39; Neighborhood(Havel-Hakimi定理)
- 巧用AWK处理二进制数据文件
- 一行 Python 实现并行化 -- 日常多线程操作的新思路
- 如果你只会JQuery的插件式开发, 那么你可以进来看看?
- Git坑点——remote: error: GH007: Your push would publish a private email address.
- JAVA并发编程——守护线程(Daemon Thread)
- linux 服务器安全加固和内核参数调优 nf_conntrack
- .net core 分布式配置中心
- Java系列笔记(0) - 目录和概述
- Leetcode题库——27.移除元素
- linux命令-grep+正则表达式用法
- Java Socket 编程之Socket与ServerSocket的区别
- php实现静态化
- cocos2d-x v3.0新特性及使用
- Element表单验证规则
- C++11中std::bind的使用
热门文章
- # HUAWEI--IPv6 over IPv4隧道配置(简单案例)
- spring boot No qualifying bean of type &#39;org.apache.catalina.core.ApplicationContext&#39; available
- css - content-visibility
- 在k8s中使用harbor仓库
- Kubernetes--Pod生命周期中的重要行为
- 大数据开源平台CDH 集群(CM6.3.1 + CDH 6.3.2)的部署
- android修改frameework与service,vendor分区需要替换的文件
- 网络负载均衡LVS
- js实现数字每三位加逗号
- JAVA学习笔记-06