模板template三种写法
完整版,写在HTML里
<div id=xxx>
{{n}}
<button @click="add">+1</button>
</div>
new Vue({
el:'#xxx',
data:{n:0}, //data可以改成函数
methods:{
add(){}
}
})
完整版,写在选项里
<div id="app">
</div>
new Vue({
data:{n:0},
template:`
<div>
{{n}}
<button @click="add">+1</button>
</div>
`,
methods:{
add(){
this.n += 1
}
}
}).$mount('#app')
注意 : div#app
会被 tempalte
里的东西代替。
非完整版,配合xxx.vue文件
src/xxx.vue
<template>
<div>
{{n}}
<button @click="add">
+1
</button>
<div>
</template>
<script>
export default {
data(){
return {n:0},
},
methods:{
add(){
this.n +=1
}
}
}
</script>
<style>
这里写css
</style>
src/main.js
import Xxx from './xxx.vue'
//Xxx是一个options对象
new Vue({
render: h => h(Xxx)
}).$mount('#app')
在template展示内容
{{object.a}}
表达式{{n + 1}}
可以写任何运算{{fn(n)}}
可以调用函数- 如果值为undefined 或 null 就不显示
- 写法为
<div v-text="表达式"></div>
,例子如下
假设 data.x
的值为 <strong>hi</strong>
,就<div v-html="x"
>
指令
指令,是带有 v-
前缀的特殊attribute。值预期是单个JavaScript表达式。当表达式的值改变时,响应式地作用于DOM。
语法:v-指令名:参数=值
,如: v-on:click=add
- 如果值没有特殊字符,可以不加引号。
- 有些指令没有参数和值,如
v-pre
- 有些指令没有值,如:
v-on:click.prevent
v-pre
如果我想在页面中展示 {{n}}
,则
<div v-pre>
{{n}}
</div>
作用和 <pre>
差不多。
v-bind: 绑定属性
基本用途是动态更新 HTML 元素上的属性,比如 id 、 class 等
- 可以绑定
src
: ```vue
- 可以绑定对象:
```vue
<div :style="{border: '1px solid red', height: 100}">
注意这里可以把‘100px’写成 100
</div>
v-on: 绑定事件
<button v-on:click="add">点击运行add()</button>
<button v-on:click="xxx(1)">点击运行xxx(1)</button>
<button v-on:click="n+=1">点击运行n+=1</button>
<!-- 可以简写 -->
<button @click="n+=1">点击运行n+=1</button>
条件判断
if…else
<div v-if="x > 0">
x大于0
</div>
<div v-else-if="x === 0">
x为0
</div>
<div v-else>
x小于0
</div>
循环
<ul>
<li v-for="(u, index) in users" :key="index">
索引:{{index}} 值:{{u.name}}
</li>
</ul>
<ul>
<li v-for="(value, name) in obj" :key="name">
属性名:{{name}} 属性值:{{name}}
</li>
</ul>
v-show 显示与隐藏
<h1 v-show="n%2 === 0">显示还是隐藏</h1>
<!-- 近似 -->
<div :style="{display:n%2 === 0?'block':'none'}">
显示还是隐藏
</div>
修饰符
上面的v-on:click.prevent
的 .prevent
是修饰符。
修饰符是用来修饰一个指令的,如常用的:
@clikc.stop="add"
表示阻止事件传播/和冒泡@click.prevent="add"
表示阻止默认动作@click.stop.prevent="add"
同时表示两种意思。
v-on支持的修饰符有:
{keycond | keyAlias}
.stop
.prevent
.capture
.self
.once
.passive
.native
- 快捷键相关
.ctrl
.alt
.shift
.meta
.exact
- 鼠标相关
.left
.right
.middle
v-bind支持的修饰符有:
.prop
.camel
.sync
v-model支持的有:
.lazy
.number
.trim