本帖子的知识点来源🔜黑马程序员vue前端基础教程-4个小时带你快速入门vue的一部分知识点
文章目录
- 1.如何导入vue?
- 2.[v-text]---如何通过vue给元素赋值(字符串类型或者数组类型)
- 3.[v-html]---如何设置元素为超链接
- 4.[v-on]---怎么给元素设置触发事件
- 5.[v-on]---如何实现触发事件后带上参数请求方法
- 6.[v-text \ v-on]---如何实现计个数器?
- 7.[v-show \ v-if ]---如何改变元素的显示/隐藏状态?
- 8.[v-show \ v-if ]---如何根据条件自动改变元素的显示/隐藏状态?
- 9.[v-bind]---如何给标签设置src、title属性值?
- 10.[v-bind]---如何根据条件来设置标签的class属性值?
- 11.[v-on / v-show]---如何制作图片切换浏览?
- 12.[v-for]---如何遍历出数组和对象的值?
- 13.[v-model]---如何获取或改变输入框的值?
1.如何导入vue?
script标签里导入,就这么简单,不用安装node.js哈
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档标题</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</body>
</html>
2.[v-text]—如何通过vue给元素赋值(字符串类型或者数组类型)
花括号写法、v-text写法,都显示在代码里了
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div class="app">
<h2 v-text="message+',不变的字符串内容(可有可无)'"></h2>
<h2>{{school.name+',不变的字符串内容(可有可无)'}}</h2>
<ul>
<li v-text="campus[0]"></li>
<li>{{campus[1]}}</li>
</ul>
</div>
<script>
var app = new Vue({
el: ".app",
data: {
message: "a",
school: {name: "b",mobile: "123"},
campus: ["北京校区", "上海校区"]
}
})
</script>
</body>
效果:
对应的关系:
3.[v-html]—如何设置元素为超链接
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div class="app">
<h2 v-html="content"></h2>
</div>
<script>
var app = new Vue({
el: ".app",
data: {
content:"<a href='http://www.baidu.com'>前往百度</a>",
}
})
</script>
</body>
显示效果:
4.[v-on]—怎么给元素设置触发事件
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div class="app">
<input type="button" value="单击AA" v-on:click="doIt">
<input type="button" value="单击(简写)" @click="doIt">
<h2 @dblclick="changeWord">{{content}}</h2>
</div>
<script>
var app = new Vue({
el: ".app",
data: {
content: "双击本字符可以追加文字哦",
},
methods: {
doIt: function () {
alert("AAA");
},
changeWord: function () {
this.content += "牛逼!";
}
}
})
</script>
</body>
显示效果:
1.刷新页面后:
2.点击两个按钮的效果:
3.双击文字2次后的效果:
5.[v-on]—如何实现触发事件后带上参数请求方法
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<input type="text" @keyup.enter="sumbitName('hello')" />
</div>
<script>
var app = new Vue({
el: "#app",
methods: {
sumbitName: function (word) {
alert("say " + word)
}
}
})
</script>
</body>
显示效果:只要在输入框中按一下回车键,就可以触发请求方法,参数为hello
6.[v-text \ v-on]—如何实现计个数器?
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<div class="input-num">
<button @click="sub">
-
</button>
<span>{{ num }}</span>
<button @click="add">
+
</button>
</div>
</div>
<script>
var app = new Vue({
el: "#app",
data: {
num: 0,
},
methods: {
sub: function () {
if (this.num == 0) {
alert("数字不能小于0")
} else {
this.num--;
}
},
add: function () {
if (this.num == 10) {
alert("数字不能大于0")
} else {
this.num++;
}
}
}
})
</script>
</body>
显示效果:点击加号数字自增,点击减号数字自减
7.[v-show \ v-if ]—如何改变元素的显示/隐藏状态?
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<img v-show="isShow" sizes="small" src="图片地址">
<!-- 可以把v-show改成v-if,页面效果一致-->
<!-- v-show改变的是display的值,v-if是直接生成或删除对应标签-->
<input type="button" value="点击" @click="chang">
</div>
<script>
var app = new Vue({
el: "#app",
data: {
isShow: true,
},
methods: {
chang: function () {
this.isShow=!this.isShow;
}
}
})
</script>
</body>
显示效果:
点击按钮后就会隐藏或显示图片
8.[v-show \ v-if ]—如何根据条件自动改变元素的显示/隐藏状态?
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<img v-show="money>30" sizes="small" src="图片地址">
<!-- 可以把v-show改成v-if,页面效果一致-->
<!-- v-show改变的是display的值,v-if是直接生成或删除对应标签-->
<input type="button" value="点击" @click="chang">
</div>
<script>
var app = new Vue({
el: "#app",
data: {
money: 10,
},
methods: {
chang: function () {
this.money+=10
}
}
})
</script>
</body>
显示效果:
点击两次按钮图片就会出来
9.[v-bind]—如何给标签设置src、title属性值?
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<img :src="imgSrc" :title="'图片为'+imgTitle">
<!-- 可以把:src改成v-bind:src/:title改成v-bind:title -->
</div>
<script>
var app = new Vue({
el: "#app",
data: {
imgSrc: "图片地址",
imgTitle: "京东标志"
}
})
</script>
</body>
显示效果:
第二张图鼠标悬停后会显示图片说明文字(即title的值)
10.[v-bind]—如何根据条件来设置标签的class属性值?
<head>
<meta charset="utf-8">
<title>文档标题</title>
<style>
.mypic {
border: 5px solid blue;
}
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<img :src="imgSrc" :class="hasClass?'mypic':''">
<!-- 三元表达式可以改成"{mypic:hasClass}"-->
<!-- :class改成v-bind:class -->
</div>
<script>
var app = new Vue({
el: "#app",
data: {
imgSrc: "图片地址",
hasClass: true//这里如果变成false则无法显示蓝色边框
}
})
</script>
</body>
显示效果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab3e8f1397f64c35bcf863fbcd780e54.png
11.[v-on / v-show]—如何制作图片切换浏览?
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<img v-show="index!=0" @click="prev" src="左按钮图片地址">
<img :src="imgArr[index]">
<img v-show="index != imgArr.length-1" @click="next" src="右按钮图片地址">
</div>
<script>
var app = new Vue({
el: "#app",
data: {
imgArr: [
"图片地址1",
"图片地址2",
"图片地址3"
],
index: 1,
},
methods: {
prev: function () {
this.index--;
},
next: function () {
this.index++;
}
}
})
</script>
</body>
显示效果:左右点按钮就可以切换图片
12.[v-for]—如何遍历出数组和对象的值?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档标题</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<ul>
<li v-for="(it,index) in arr">
{{index}}-->{{ it }}
</li>
</ul>
<ul>
<li v-for="item in obj">
{{ item.job }}
</li>
</ul>
</div>
<script>
var app = new Vue({
el: "#app",
data: {
arr: ["mary", "tim", "james"],
obj: [{ job: "会计" }, { job: "律师" }, { job: "教师" }]
}
})
</script>
</body>
</html>
显示效果:
13.[v-model]—如何获取或改变输入框的值?
<body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
注册名:<input type="text" v-model="signUpName" @keyup.enter="sumbitName()" />
<input type="button" value="一键随机生成" @click="createName">
</div>
<script>
var app = new Vue({
el: "#app",
data: {
signUpName: ""
},
methods: {
sumbitName: function () {
alert(this.signUpName + '注册成功')
this.signUpName = '';
},
createName: function () {
//这部分是生成随机字符串
var numlist = ['a', 'b', 'c', 'd', 'e', 'f'];
var newName = [];
for (let i = 0; i < 6; i++) {
var Range = numlist.length - 1;
var Rand = Math.random();
var num = 0 + Math.round(Rand * Range);
newName.unshift(numlist[num])
}
//赋值
this.signUpName = newName.toString().replaceAll(',', '');
}
}
})
</script>
</body>
显示效果:
1.输入十万猫毛,按下回车键,就会获取输入框内容,弹出注册成功提醒,点击确认后清空输入框
2.每次按下按钮,会生成随机字符串,并显示在输入框中