vue是渐进式的javascript框架,框架就是自己的规则的一套语法。本文记录了常用的vue语法以及使用方法。
<template>
<div>
<h1>{
{
msg}}</h1>
</div>
</template>
<script>
export default {
data(){
// 格式固定, 定义vue数据之处
return{
msg:'hello vue'
}
}
}
</script>
...
...
<a v-bind:herf="link">给链接绑定herf属性<a>
...
<script>
export default {
data(){
// 格式固定, 定义vue数据之处
return{
link:'http://www.baidu.com'
}
}
}
</script>
...
...
<p>显示数字{
{
num}}</p>
// 在vue事件中,可以直接访问data中的数据,一旦data中数据改变就会自动更新到视图中
<button v-on:click="num=100">+1</button>
<button v-on:click="add">+1</button>
<button v-on:click="updata(5)">+</button>
...
<script>
export default {
data(){
return{
num:1
}
},
methods:{
//vue方法定义在methods属性中
add(){
this.num++; //通过this访问data中的数据
},
updata(count){
if(num>50){
this.num+= count;
}else{
this.num++;
}
}
}
}
</script>
...
...
<a :href="link" @click="one">链接呢</a>
<hr>
<a :href="link" @click="two(2,$event)">链接</a>
...
methods: {
one(e){
e.preventDefault();
},
two(x,e){
e.preventDefault();
}
}
...
语法:@事件名.修饰符=“methods里函数”
语法:@事件名.修饰符=“methods里函数”
...
<p>下拉菜单---------------------------------------</p>
<select v-model="city">
<option value="南京">南京</option>
<option value="湖南">湖南</option>
<option value="四川">四川</option>
</select>
<p>复选框---------------------------------------</p>
<input type="checkbox" v-model="checkipt" value="舞蹈" />舞蹈
<input type="checkbox" v-model="checkipt" value="瑜伽" />瑜伽
<input type="checkbox" v-model="checkipt" value="吃零食" />吃零食
<p>单选框---------------------------------------</p>
<input type="radio" v-model="radioipt" value="女" />女
<input type="radio" v-model="radioipt" value="男" />男
...
data() {
return {
radioipt:'女',
checkipt: [],
city: "四川" //设置为和value相同的值,会默认选中
};
...
【注意】:
①下拉菜单要绑定在select上。
② 遇到复选框, v-model的变量值为非数组 - 关联的是复选框的checked属性,数组 - 关联的是复选框的value属性。
③单选框可以在数据里设置默认选中,数据值=value值。
语法:v-model.修饰符=“methods里函数或数据”
...
<p>{
{
msg}}</p> //不覆盖标签内原有内容
<p v-text="msg"></p> //无法识别html标签
<p v-html="msg"></p> //识别html标签
<p v-html="msg">{
{
msg}}</p> //覆盖标签内容
...
data(){
return{
msg:"标签语法
"
}
...
作用:渲染列表
语法:
== v-for="(值, 索引) in 目标结构"==
渲染列表+删除功能
...
<ul>
<li @click="del(obj.id)" v-for="obj in arr" :key="obj.id">{
{
obj.name}}</li>
</ul>
...
data(){
return{
arr:[{
id:1,
name:"安迪",
},{
id:2,
name:"奥安",
},{
id:3,
name:"关关",
}]
}
},
methods:{
del(delid){
// 获取数组的下标 根据findindex方法
let index = this.arr.findIndex(e=>e.id == delid);
index>-1 && this.arr.splice(index,1);
}
}
...
// 如果价格超过100,就有red这个类
<td :class="{red:obj.price>100}">{
{
obj.price }}</td>
...
<p :style="{backgroundColor: colorStr}">动态style</p>