当前位置 博文首页 > zhouqiyuan1233的博客:Vue基础语法
狂神教学视频链接
css缺陷:
解决方法:css预处理器
VUe特性:
虚拟DOM 计算属性
引入 Vue.js : https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue</title>
<script src='https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js'></script>
</head>
<body>
<div id="app">
{{message}}
</div>
<script>
var vm = new Vue({
el: "#app",//绑定标签,el是元素的意思
data: {
//数据都是以键值对的方式存在的
message: "hello Vue!"
}
});
</script>
</body>
</html>
注意:程序里Vue这三个字母一定要一字不差的打,不要改大小写,否则会识别不出来。
效果:
简单实现一下双向绑定:
直接从控制台更改程序的js代码,界面立即改变。
本程序里的vm就是个Vue实例化对对象,它时刻监听,当数据发送变化立即渲染到前端,不需要刷新界面。
Vue不改变Dom元素(使用虚拟Dom),只是更改了里面的值。
即时运行即时编译
Vue核心,实现了Dom监听和数据绑定
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue</title>
<script src='https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js'></script>
</head>
<body>
<div id="app">
<span v-bind:title="message">
鼠标悬停几秒查看此处绑定的信息
</span>
</div>
<script>
var vm = new Vue({
el: "#app",//绑定标签,el是元素的意思
data: {
//数据都是以键值对的方式存在的
message: "hello Vue!"
}
});
</script>
</body>
</html>
效果:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>if-else</title>
<script src='https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js'></script>
</head>
<body>
<div id="app">
<h1 v-if="type==='A'">A</h1>
<h1 v-else-if="type==='B'">B</h1>
<h1 v-else-if="type==='C'">C</h1>
<h1 v-else>D</h1>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
type: "A"
}
});
</script>
</body>
</html>
效果:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-for</title>
<script src='https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js'></script>
</head>
<body>
<div id="app">
<li v-for=" item in items">
{{item.message}}
</li>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
items: [
{message: '今天是个好日子'},
{message: '今夜阳光明媚'},
{message: '今夜多云转晴'}
]
}
});
</script>
</body>
</html>
效果:
循环还能打印下标:
<li v-for=" (item,index) in items">
{{item.message}}-----{{index}}
</li>
动态向数组中添加数据:
vm.items.push({message: ‘今夜多云转晴’});
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-on</title>
<script src='https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js'></script>
</head>
<body>
<div id="app">
<button v-on:click="sayHi">点我</button>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
message: "针不戳"
},
methods: {
定义的方法必须写在这里,event是传入事件
sayHi: function (event) {
alert(this.message)
}
}
});
</