Vue快速入门(其一)
Vue基础

VUE特点:页面由数据生成,数据改变页面会同步跟着改变
需要具有前端三剑客(HTML、CSS、JavaScript)以及AJAX的基础

(开发版本有提示?)
快速入门代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<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>
</html>

(建议挂载到div上,div一般无其它样式)

代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
{{ message }}
{{ man.name }}
{{ language[0] }}
</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!',
man: {
name: 'zwc',
age: 22
},
language: ['java', "python"]
}
})
</script>
</body>
</html>
本地应用
v-text和v-html标签:区别就在于前者不能解析HTML,后者可以。(Java Web中讲过类似的属性,不做过多赘述)
v-on:

v-on失效解决方法:WebStorm使用Vue.js “Namespace 'v-on' is not bound ”

v-show:

v-if:

v-bind:

测试代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="referrer" content="no-referrer" />
<style>
.active{
border: 1px solid red;
}
</style>
</head>
<body>
<div id="app">
<img v-bind:src="imgSrc" v-show="imgShow" :title="imgTitle" :class="{active:imgActive}">
<button @click="isShow">切换显示</button>
<button @click="isActive">切换样式</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
imgSrc: 'https://pic.cnblogs.com/avatar/1721072/20211027133723.png',
imgShow: true,
imgTitle: '百度图片',
imgActive: false
},
methods: {
isShow: function () {
this.imgShow = !this.imgShow;
},
isActive: function () {
this.imgActive = !this.imgActive;
}
}
})
</script>
</body>
</html>
(注意,如果图片无法正常显示,需在<head>标签中添加以下代码)
<meta name="referrer" content="no-referrer" />

v-for:

v-on补充:

v-model:

记事本小练习:

学到这里,也不难发现Vue的强大了。和之前基于dom的方式不一样,Vue都是基于数据的开发方式,不用再把重心放在如何改变dom树了。整个页面是响应式的,数据变化,页面也跟着变化。
自己的代码如下(核心点和老师代码是一样的,只不过老师的代码有css样式,页面看起来更加美观一些):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<input type="text" v-model="newBook">
<button @click="addBook">添加</button>
<li v-for="(item,index) in book">
{{index+1 + ' ' + item}}
<button @click="deleteBook(index)">删除</button>
</li>
<scan v-show="book.length > 0">{{book.length}} total</scan>
<button @click="clearBook" v-show="book.length > 0">clear</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
book: ['吃饭', '洗澡', '睡觉'],
newBook: ''
},
methods: {
addBook: function () {
this.book.push(this.newBook);
},
deleteBook: function (i) {
this.book.splice(i,1);
},
clearBook: function () {
this.book = [];
}
}
})
</script>
</body>
</html>
(注意splice方法的使用,第一个参数为删除的索引位置,第二个参数为删除该索引开始的几个元素)

浙公网安备 33010602011771号