vue模板语法以及简单应用---按钮切换

本文介绍了Vue模板语法的基础知识,包括文本插值、指令(如v-bind、v-html、v-on)、条件渲染(v-if与v-show的区别)、列表渲染(v-for)、class和style的绑定。此外,还展示了如何在实际应用中使用模板语法实现按钮内容的切换,通过事件处理和元素属性获取实现交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍:

vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有 Vue的模板都是合法的 HTML,所以能被遵循规范的浏览器和HTML解析器解析。在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。如果你熟悉虚拟 DOM 并且偏爱 JavaScript 的原始力量,你也可以不用模板,直接编写渲染函数及render,使用可选的 JSX 语法(react采用的就是jsx语法)。

1、文本插值

  <div id="app">
    {{msg+'xixi'}}
  </div>
  <script>
    let vm = new Vue({
      el: '#app',
      data: {
        msg: 'hello vue',
      },
      methods: {}
    })
  </script>

结果是:hello vuexixi 

{{msg}} 用双大括号将data数据模型中的字段渲染到页面中
{{ msg + 'xixi' }} 双大括号内部可以放js表达式

2、指令

v-bind:动态绑定元素上的属性    v-bind:title 可以简写成 :title="title"

v-html:绑定html代码片段,有格式的内容转成相应html代码片段 

v-on:动态绑定事件     v-on:click="clickHandler"可以简写成@click="clickHandler"

      <div id="app">
        {{msg}}<br>
        //绑定点击事件
        <button v-on:click="clickHandler">修改数据</button>
        <p v-bind:title="title">v-bind指令</p>
        <div class="content" v-html="content"></div>
      </div>
      <script>
        let vm = new Vue({
          el: '#app',
          data: {
            msg: 'hello vue',
            title: '我是P标签',
            content: '<h3>我是3级标题</h3>'
          },
          methods: {
            clickHandler() {
              this.msg = '你好 vue'
            }
          }
        })
      </script>

 点击修改数据后hello vue变成你好 vue

  

3、条件渲染

v-if     v-else

v-show

 两者区别如下:

1>v-if v-else 通过控制dom节点的渲染,实现显示与隐藏

2>v-show 通过控制dom节点css样式中display,来实现显示与隐藏

频繁的显示与隐藏某个组件时,用v-show较好;v-if会频繁渲染dom数,占用资源,影响代码运行效率。

4、列表渲染

v-for:用于将列表数据进行渲染。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。

<ul>
 <li v-for="item in items" :key="item.message"> {{ item.message }} </li>
</ul>

当items为数组的时候,item为数组元素,index表示索引

<ul> 
	<li v-for=“(item,index) in items" :key="item.message"> {{ item.message }} </li> 
</ul>

 当obj为对象的时候,value为属性值,key为属性名,index为索引

<ul> 
	<li v-for= "(value,key,index) in obj" :key="value"> {{ value}} </li> 
</ul>

5、class绑定

操作元素的class列表和内联样式是数据绑定的一个常见需求,因为它们都是attribute,所以我们可以用v-bind处理它们。

6、style绑定

v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名。

7、模板语法简单应用(按钮切换)

  <div id="app">
    //2、用三目运算符判断样式  当确定isActive是按钮1/2/3时,就将acStyle的样式给当前点击的按钮,否则就是默认样式
    <button :style="isAcive=='按钮1' ? acStyle : ''" @click="clickHandler">按钮1</button>
    <button :style="isAcive=='按钮2' ? acStyle : ''" @click="clickHandler">按钮2</button>
    <button :style="isAcive=='按钮3' ? acStyle : ''" @click="clickHandler">按钮3</button>
  </div>
  <script>
    //vue实例
    let vm = new Vue({
      el: '#app',
      data: {
        isAcive: '',
        acStyle: {
          background: 'black',
          color: 'white'
        }
      },
      methods: {
        clickHandler(event) {
          //1、判断当前点击的isActive是按钮几
          this.isAcive = event.target.innerText
        }
      }
    })
  </script>

 target 属性获取最初发生事件的元素,用它可以获取button按钮点击的那个目标节点,之后可以用innerText 属性获取button按钮的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值