这篇笔记的内容 | 解释 |
---|---|
el | 挂载点,也就是挂载了这个元素及其子元素可以使用 vue 里面的各种属性和方法 |
data | 储存这个 vue 实例里面的数据 |
methods | 储存这个 vue 实例里面的方法 |
v-text 或 {{ message }} | 设置标签的文本值 |
v-html | 设置标签的文本值的同时也可以解析标签 |
v-on 或 @事件 | 给这个元素绑定事件 |
v-show | 元素的显示和隐藏 (给元素添加 display:none ) |
v-if | 元素的显示和隐藏 (通过删除这个元素) |
v-bind 或 :属性 | 操纵元素的属性 |
v-for | 根据数据的个数动态生成列表 |
v-model | 双向绑定表单元素和 vue 实例中的 data 中的值 |
<script src="vue.js">script>
<div id="app">
{{message}}
div>
<script>
var app = new Vue({
el: "#app",
data: {
message: "hello Vue"
}
})
script>
{{message}}
<div id="app" class="app">
{{ message }}
<span>
{{ message }}
span>
div>
<script>
var app = new Vue({
// el: "#app",
el: ".app",
data: {
message: "菜鸟小铭"
}
})
script>
Vue 中用到的数据定义在 data 中
data 里面不仅可以放文字,还可以放对象,数组等复杂数据
使用数据时遵守 js 语法即可
新建一个 Vue 对象,并且 data 里面有一个对象
<div id="app" class="app">
{{ message }}
{{ object.name }}
{{ object.stu }}
div>
<script>
var app = new Vue({
// el: "#app",
el: ".app",
data: {
message: "菜鸟小铭",
object: {
name: "noobMing",
stu: "vue"
}
}
})
script>
<div id="app">
<h2 v-text="message">testh2>
<h2>test{{ message }}h2>
div>
<script>
var app = new Vue({
el: "#app",
data: {
message: "菜鸟小铭"
}
})
script>
下面的方式和下面的方式的区别:
支持表达式,例如 v-test = "message + '!' "
v-html 和 v-text 的区别:
代码示例:
<div id="app">
<h2 v-html="message">testh2>
<h2>{{ message }}h2>
<h2 v-text="message">h2>
div>
<script>
var app = new Vue({
el: "#app",
data: {
message: "菜鸟小铭"
}
})
script>
v-on:
来绑定各种事件<div id="app">
<button v-on:click="doit">testbutton>
<button @click="doit">testbutton>
div>
<script>
var app = new Vue({
el: "#app",
methods: {
doit: function () {
console.log("doit");
}
}
})
script>
var count = new Vue({
el: ".input-num",
data: {
num: 0
},
methods: {
minus: function () {
this.num--;
},
plus: function () {
this.num++;
}
}
})
<span v-show="flag">span>
<button @click="changeShow">-button>
<span v-show="flag">span>
<script>
var count = new Vue({
el: ".input-num",
data: {
flag: false
},
methods: {
changeShow: function () {
this.flag = !this.flag
}
},
})
script>
v-if 也是可以操纵元素的显示和隐藏,但是和v-show的原理不太一样,v-if 是直接删除了这个元素,而 v-show 只是给元素添加了 display: none
这个属性
使用方法和 v-show 差不多
<button @click="changeIf">-button>
<span v-if="flag">span>
<script>
var count = new Vue({
el: ".input-num",
data: {
flag: false
},
methods: {
changeShow: function () {
this.flag = !this.flag
}
},
})
script>
v-bind:属性名 = 表达式
可以简写为 :属性名=表达式
<div class="app">
<img v-bind:src="imageSrc" :title="imageTitle" :class="isActive?active:''">
div>
<script>
var app = new Vue({
el: '.app',
data: {
imageSrc: "这里填图片的路径",
imageTitle: "菜鸟小铭",
isActive: false,
}
})
script>
{active:isActive}
大概意思是前面的active的值取决于后面isActive的真假切换图片使用的是修改 src 属性
用一个数组储存所有的图片地址,然后左右按钮分别绑定两个点击事件,点击左按钮或者点击右按钮就设置 src 为 数组的上一个或者下一个,给左右按钮绑定 v-show ,如果左按钮的索引值为 0 或者右按钮的索引值为数组的长度减一则隐藏这个按钮
代码示例:
var app = new Vue({
el: "#mask",
data: {
imgArr: [
"./images/00.jpg",
"./images/01.jpg",
"./images/02.jpg",
"./images/03.jpg",
],
index: 0
},
methods: {
prev:function(){
this.index--;
},
next:function(){
this.index++;
}
},
})
(item, index) in 数据结构
item:值 index:索引<div id="app">
<ul>
<li v-for="(item,index) in arr" :title="item">
{{ item }} {{ index }}
li>
ul>
div>
<script>
var app = new Vue({
el: "#app",
data: {
arr: [1, 2, 3, 4, 5]
},
})
script>
补充了自定义参数 和 事件修饰符
自定义参数是指用 v-on 绑定事件的时候里面的方法可以传递参数
事件修饰符指的是可以选择特定的条件触发这个事件 (例如摁下回车键等等)
代码示例:当摁下回车键时问候吃了没
<div id="app">
<input type="text" @keyup.enter="sayHi">
div>
<script>
var app = new Vue({
el: "#app",
methods: {
sayHi: function () {
alert("吃了没");
}
}
})
script>
<div id="app">
<input type="text" v-model="message">
div>
<script>
var app = new Vue({
el: "#app",
data: {
message: "菜鸟小铭"
}
})
script>
splice(num, 1)
第一个参数是从哪开始,第二个参数是删除几个var notepad = new Vue({
el: ".notepad",
data: {
notepadArr: [],
message: ""
},
methods: {
// 录入记事本
entry: function () {
this.notepadArr.push(this.message);
},
// 清空记事本
wipe: function () {
this.notepadArr.splice(0, this.notepadArr.length);
},
// 删除某个元素
deleteNum: function (num) {
this.notepadArr.splice(num, 1);
},
}
})