Vue —— 模板语法

简介: Vue —— 模板语法

一、插值

  1. 文本:数据绑定最常见的形式就是使用 {{…}}(双大括号)的文本插值。
  <div id="app">
      <p>{{ message }}</p>
  </div>
  1. v-html:使用 v-html 指令用于输出 html 代码。
  <div id="app">
    <div v-html="message"></div>
  </div>
  <script>
    new Vue({
        el: '#app',
        data: {
          message: '<h1>HELLO VUE!</h1>'
        }
    })
  </script>
  1. 属性:HTML 属性中的值应使用 v-bind 指令。

需求:判断 use 的值,如果为 true 使用 class1 类的样式,否则不使用该类。

  .class1 {
        background:#444;
        color: #eee;
    }
  <div id='app'>
        <label for="r1">修改颜色</label><input type="checkbox" v-model="use" id="r1">
        <br><br>
        <div v-bind:class="{'class1': use}">
            v-bind:class指令
        </div>
    </div>
  <script>
        var vm = new Vue({
            el: '#app',  
            data:{
                use: false
            },
        })
    </script>

0b537b2570f0411eb6554385c63720bf.png

二、指令

指令是带有 v- 前缀的特殊属性。

指令用于在表达式的值改变时,将某些行为应用到 DOM 上。


参数:在指令后以冒号 : 声明 。

v-bind 指令被用来响应的更新 HTML 属性。在这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定。

  <div id="app">
      <a v-bind:href="url">百度</a>
  </div>
  <script>
    new Vue({
        el: '#app',
        data: {
          url: 'http://www.runoob.com'
        }
    })
  </script>
  1. 修饰符:以 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。

例如,.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault()

  <form v-on:submit.prevent="onSubmit"></form>

三、用户输入

  1. 在 input 输入框中我们可以使用 v-model 指令来实现双向数据绑定。
  <div id='app'>
        <p>{{msg}}</p>
        <input v-model='msg'>
    </div>
  var vm = new Vue({
        el: '#app',  
        data:{
            msg: 'Hello vue.'
        }
    })

v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定元素的值。


按钮的事件可以使用 v-on 监听事件,并对用户的输入进行响应。

需求:在用户点击按钮后对字符串进行反转操作。

  <div id='app'>
        <p>{{msg}}</p>
        // 参数是监听的事件名
        <button v-on:click="reverseMessage">反转字符串</button>
    </div>
  var vm = new Vue({
        el: '#app',  
        data:{
            msg: 'Hello vue.'
        },
        methods:{
            reverseMessage: function(){
              // `this` 指向 vm 实例
                this.msg = this.msg.split('').reverse().join('')
            }
        }
    })

四、过滤器

Vue.js 允许自定义过滤器,被用作一些常见的文本格式化。由 ‘管道符’ 指示。

格式:


在两个大括号中 {{ msg1 | msg2 }}

在 v-bind 指令中 <div v-bind:id="ID1 | ID2"> </div>

对输入的字符串第一个字母转为大写

  <div id='app'>
        {{msg | capitalize}}
    </div>
  var vm = new Vue({
        el: '#app',  
        data:{
            msg: 'hello vue.'
        },
        filters:{
            capitalize: function(value){
                if(!value) return ''
                // 转为字符串
                value = value.toString()
                // 返回 第一个字符转为大写 + 后面的字符
                return value.charAt(0).toUpperCase() + value.slice(1)
            }
        }
    })

过滤器是 JavaScript 函数,因此可以接受参数:{{ message | filterA('arg1', arg2) }}

  1. 第一个参数是 message
  2. 字符串 ‘arg1’ 将传给过滤器作为第二个参数
  3. arg2 表达式的值将被求值然后传给过滤器作为第三个参数。

五、缩写

  1. v-bind 缩写
  <!-- 完整语法 -->
  <a v-bind:href="url"></a>


  <!-- 缩写 -->
  <a :href="url"></a>
  1. v-on 缩写
  <!-- 完整语法 -->
  <a v-on:click="doSomething"></a>


  <!-- 缩写 -->
  <a @click="doSomething"></a>

不积跬步无以至千里 不积小流无以成江海

相关文章
|
6天前
|
缓存 监控 JavaScript
探讨优化Vue应用性能和加载速度的策略
【5月更文挑战第17天】本文探讨了优化Vue应用性能和加载速度的策略:1) 精简代码和组件拆分以减少冗余;2) 使用计算属性和侦听器、懒加载、预加载和预获取优化路由;3) 数据懒加载和防抖节流处理高频事件;4) 图片压缩和选择合适格式,使用CDN加速资源加载;5) 利用浏览器缓存和组件缓存提高效率;6) 使用Vue Devtools和性能分析工具监控及调试。通过这些方法,可提升用户在复杂应用中的体验。
21 0
|
6天前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
1天前
|
JavaScript Java 关系型数据库
基于SprinBoot+vue的租房管理系统2
基于SprinBoot+vue的租房管理系统2
9 0
|
2天前
|
自然语言处理 JavaScript 数据可视化
5个值得推荐的Vue后台管理框架
几个优秀好看的 Vue 后台管理框架,每个框架都有自己的特点和优势,开发者可以根据项目需求选择适合的框架。
14 0
|
5天前
|
JavaScript 开发工具 git
Vue 入门系列:.env 环境变量
Vue 入门系列:.env 环境变量
13 1
|
6天前
|
JavaScript 数据库
ant design vue日期组件怎么清空 取消默认当天日期
ant design vue日期组件怎么清空 取消默认当天日期
|
6天前
|
JavaScript C++
vue高亮显示组件--转载
vue高亮显示组件--转载
12 0
|
6天前
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
|
6天前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
6天前
|
JavaScript
vue中使用pinia及持久化
vue中使用pinia及持久化
12 0