javascript框架
简化dom操作
响应式数据驱动
<body>
<div id="app">
{{ message }}
div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js">script>
<script>
var app = new Vue({
el:"#app",
data:{
message:"Hello Vue!"
}
})
script>
body>
作用:el是用来设置Vue实例挂载(管理)的元素
字符串{{ message }}
对象<h2>{{school.name}}h2>
<ul>
<li>数组{{campus[0]}}li>
ul>
data:{
message:"Hello Vue!",
school:{
name:"heima"
},
campus:["beijing"]
}
v-text指令可以设置标签的内容
默认写法会替换全部内容,使用差值表达式{{}}可以替换指定内容
v-html指令设置元素的innerHTML
内容有html结构的会被解析为标签,v-text只会解析为文本
事件有点击,移动,鼠标移入移出等
形式:v-on:事件名=“方法名”
可简写为:@事件名=“方法名”,
具体的方法实现方式写在script中,
this可以获得该实例对象,对数据进行相应的操作
<div id="app">
<input type="button" value="v-on指令" @click="changeFood">
<p v-text="food">p>
div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js">script>
<script>
<!-- 3.创建Vue实例 -->
var app = new Vue({
el:"#app",
data:{
food:"西红柿鸡蛋"
},
methods:{
doIt:function(){
alert('做IT')
},
changeFood:function(){
this.food+='好吃!'
}
}
})
script>
事件绑定的方法写成函数调用的形式,可以传入自定义参数
定义方法时需要定义形参来接收传入的参数
事件的后面跟上.修饰符可以对事件进行限制
<input type="button" value="点击" @click="doIt(666,'老铁')">
<input type="text" value="" @keyup.enter="sayHi">
methods:{
doIt:function(p1,p2){
console.log(p1);
console.log(p2)
},
sayHi:function(){
alert("吃了吗")
}
}
v-show,v-if功能相同,都是根据表达式的真假,切换元素的显示和隐藏
形式:v-show=“true"后边是布尔值,可以为布尔值,变量,表达式。
v-show=“age>10”
v-if是直接操作dom元素的,进行添加和删除。v-show是操作属性display的。
作用:设置元素的属性(比如src,title,class)
形式:
<div>
<img v-bind:src="imgSrc">
<img v-bind:title="imgetitle+'!!!'">
<img v-bind:class="isActive?'active':''">
<img v-bind:class="{active:isActive}">
<img :src="imgSrc"> 简写形式
div>
var app = new Vue({
el:"#app",
data:{
imgSrc:"图片地址",
imgTitle:"黑马程序员",
isActive:false
}
})
根据数据生成列表结构
数组经常和v-for结合使用
语法是(item,index) in 数据
数组长度的更新会同步到页面上,是响应式的
<div id="app">
<ul>
<li v-for="(item,index) in arr">
{{index}}-{{item}}
li>
ul>
div>
获取和设置表单元素的值(双向数据绑定)
data和模板表单里的数据是对应的
绑定的数据<–>表单元素的值
<input type="button" value="设置m" @click="setM">
<input type="text" v-model="message1" @keyup.enter="getM">
{{message1}}
data:{
message1:"hello",
},
methods:{
getM:function(){
console.log(this.message1)
},
setM:function(){
this.message1 = "kkkk"
}
}