模板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
