美文网首页
Vue的模板语法

Vue的模板语法

作者: 我是Msorry | 来源:发表于2021-01-24 17:46 被阅读0次

模板template的三种写法

第一种:Vue完整版,写在HTML中

<div id=app> {{n}}
  <button @click="add">+1</button>
</div> 
<script> 
new Vue({
  el: '#app',
  data:{n:0}, 
  methods:{add(){}} 
})
</script> 

第二种:Vue完整版,写在选项里

<div id=app> </div>
<script> 
  new Vue({ 
    template: ` 
      <div> 
        {{n}}
        <button @click="add">+1</button>
      </div>`, 
    data:{n:0}, // data 
    methods:{add(){ this.n += 1 }} 
  }).$mount('#app')
</script> 

注意:使用这种写法,原div#app会被替换,在页面中找不到id=app的div标签

第三种:Vue非完整版,配合Demo.vue文件

<template></template>中是XML语法

<script></script>中默认导出一个构造选项options,和实例的构造选项的区别是没有template

<style></style> 中写CSS

使用Vue非完整版,只能使用render: h => h(Demo)

//Demo.vue中的代码
<template>
  <div> 
    {{n}} 
    <button @click="add"> +1 </button>
   </div>
</template>
<script>
  export default {
    data(){ return {n:0} },// data 必须为函数
    methods:{add(){ this.n += 1 }} }
</script>
<style>

</style>
//实例文件
import Demo from './Demo.vue'

new Vue({
  render: h => h(Demo)
}).$mount('#app')

模板里的语法

表达式

  • {{ obj.a }} 表达式
  • {{ n+1 }} 可以写运算
  • {{ fn(n) }} 可以调用函数,fnmethods中找
  • <div v-text='表达式'></div>这是另一种写法
  • 如果值为undefinednull,就不显示

HTML标签

假设 data.x 的值为 <strong>hello</strong>,想展示HTML标签,而不是文本内容

  • <div v-html='x'></div>

展示{{n}}

不会对模板进行编译

  • <div v-pre>{{n}}</div>

绑定属性

  • 绑定src <img v-bind:src='x' /> 简写为 <img :src='x' />
  • 绑定对象 <div :style="{border: '1px solid red', height: 100}"></div>

绑定事件

发现是函数加()调用,否则直接运行代码

  • <button v-on:click="add">+1</button> 点击后,Vue会运行add()
  • <button v-on:click="xxx(1)">xxx</button> 点击后,Vue会运行xxx(1)
  • <button v-on:click="n+=1">+1</button> 点击后,Vue会运行n+=1
  • v-on:click可以缩写成@click,一般都用缩写

这导致一个问题,如果xxx(1)返回一个函数,这个函数不会执行,所以不要这么用!!!

条件判断

<div v-if='x>0'>
  x大于0
<div/>
<div v-else-if='x===0'>
  x等于0
<div/>
<div v-else='x<0'>
  x小于0
<div/>

循环

v-for="(value,key) in Object || Array" :key = 'key'使用v-for必须绑定:key="",这个值是唯一性的值

<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}} 属性值:{{value}}
  </li>
</ul>

显示与隐藏

满足条件展示标签,不满足整个标签不会出现在HTML

  • <div v-show='n%2 === 0'>n是偶数</div>

总结

1.使用XML语法
2.使用{{}}插入表达式
3.使用v-htmlv-onv-bind等指令操作DOM
4.使用v-ifv-for等指令实现条件判断和循环

相关文章

  • Vue初学-模板语法

    模板语法 Vue使用了基于HTML的模板语法,语序开发这声明式将dom绑定在底层Vue实例的数据。Vue的模板都是...

  • 《二》、Vue核心——基本使用

    一、Vue的基本使用 1、编码 2、理解 Vue 的 MVVM 3、模板语法 (1)、模板语法的理解  Ⅰ、动态的...

  • VUE指令

    vue实例 创建.vue文件 模板语法 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DO...

  • vue基础语法

    vue常用基础语法: 一、模板语法 1.vue使用基于html的模板语法,智能计算出最少需呀重复渲染的组件;2.数...

  • 模板语法

    模板语法 Vue.js使用了基于HTML的模板语法,允许开发者声明式地DOM绑定至底层Vue实例的数据。所有Vue...

  • Vue.js模板语法

    Vue.js模板语法 Vue.js使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的教...

  • Vue学习的第三天

    模板语法 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的...

  • Vue.js学习笔记(3)

    模板语法 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的...

  • 模板语法、条件、循环

    模板语法 vue的特点就是,可以使用简洁的模板语法将数据声明似的渲染进DOM系统。常见模板语法有:插值:{{}}输...

  • 模板语法

    模板语法