zoukankan      html  css  js  c++  java
  • Vue学习

    Vue的模板语法学习。

    一、插入值

    1、文本

    最常见的的方式就是使用{{……}}(双大括号)的方式插入文本值。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>文本值插入</title>
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
    </head>
    <body>
    <div id="app">
      <p>{{ message }}</p>
    </div>
    
    <script>
    new Vue({
      el: '#app',
      data: {
        message: 'Hello world!'
      }
    })
    </script>
    </body>
    </html>

    上面例子运行后,{{ message }}显示Hello world! 。

    2、html

    使用 v-html 指令用于输出 html 代码:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>html插入</title>
    <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
    </head>
    <body>
    <div id="app">
        <div v-html="message"></div>
    </div>
        
    <script>
    new Vue({
      el: '#app',
      data: {
        message: '<h1>Holle world!</h1>'
      }
    })
    </script>
    </body>
    </html>

    以上例子会将html代码'<h1>Holle world!</h1>'插入到div中。

    3、表达式

    Vue对js的所有表达式都支持。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Vue - 表达式</title>
    <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
    </head>
    <body>
    <div id="app">
        {{5+5}}<br>
        {{ ok ? 'YES' : 'NO' }}<br>
        {{ message.split('').reverse().join('') }}
        <div v-bind:id="'list-' + id">Vue学习</div>
    </div>
        
    <script>
    new Vue({
      el: '#app',
      data: {
        ok: true,
        message: 'study',
        id : 1
      }
    })
    </script>
    </body>
    </html>

    运行结果:(运行后里层div的id为:list-1)

    10
    YES
    yduts
    Vue学习

    4、指令

    指令是带有v-前缀的特殊属性,用于在表达式的值改变时,将某些行为用于到DOM上。

    <div id="app">
        <p v-if="seen">现在你看到我了</p>
    </div>
        
    <script>
    new Vue({
      el: '#app',
      data: {
        seen: true
      }
    })
    </script>

    v-if指令将根据表达式seen的值(true或者false)来决定是否显示(插入)P元素。

    5、参数

    参数在指令后面以冒号指明。例如:v-bind指令被用来响应的更新HTML属性。

    <div id="app">
        <pre><a v-bind:href="url">百度一下</a></pre>
    </div>
        
    <script>
    new Vue({
      el: '#app',
      data: {
        url: 'http://www.baidu.com'
      }
    })
    </script>

    这里的href是参数,告知v-bind指令将元素的href属性与表达式url的值绑定。

    二、按钮监听

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

    <div id="app">
        <p>{{ message }}</p>
        <button v-on:click="reverseMessage">反转字符串</button>
    </div>
        
    <script>
    new Vue({
      el: '#app',
      data: {
        message: 'study!'
      },
      methods: {
        reverseMessage: function () {
          this.message = this.message.split('').reverse().join('')
        }
      }
    })
    </script>

    以上实例在用户点击按钮后对字符串进行反转操作

    三、过滤器

    Vue可以自定义过滤器,用于一些常用的文本格式化。格式如下:

    <!-- 在两个大括号中 -->
    {{ message | capitalize }}
    
    <!-- 在 v-bind 指令中 -->
    <div v-bind:id="rawId | formatId"></div>
    <div id="app">
      {{ message | capitalize }}
    </div>
        
    <script>
    new Vue({
      el: '#app',
      data: {
        message: 'study'
      },
      filters: {
        capitalize: function (value) {
          if (!value) return ''
          value = value.toString()
          return value.charAt(0).toUpperCase() + value.slice(1)
        }
      }
    })
    </script>

    过滤器函数接受表达式的值作为第一个参数,上面实例是将输入的字符一个字母转为大写。

    过滤器可以串联:

    {{ message | filterA | filterB }}

    过滤器是js函数,因此可以接收参数:

    {{ message | filterA('arg1', arg2) }}

    这里,message是第一参数,字符串‘arg1’将传给过滤器作为第二参数,arg2作为第三参数。

    四、缩写

    v-bind缩写

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

    v-on缩写

    <!-- 完整语法 -->
    <a v-on:click="doSomething"></a>
    <!-- 缩写 -->
    <a @click="doSomething"></a>

    五、Vue实例

    1、构造器

    每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例来启动的:

    var vm = new Vue({
      // 选项
    })

    2、属性与方法

    每个Vue实例都会代理其data对象里所有的属性:

    var data = { a: 1 }
    var vm = new Vue({
      data: data
    })
    vm.a === data.a // -> true
    // 设置属性也会影响到原始数据
    vm.a = 2
    data.a // -> 2
    // ... 反之亦然
    data.a = 3
    vm.a // -> 3

    除了 data 属性, Vue 实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的 data 属性区分。例如:

    var data = { a: 1 }
    var vm = new Vue({
      el: '#example',
      data: data
    })
    vm.$data === data // -> true
    vm.$el === document.getElementById('example') // -> true
    // $watch 是一个实例方法
    vm.$watch('a', function (newVal, oldVal) {
      // 这个回调将在 `vm.a`  改变后调用
    })
  • 相关阅读:
    2017.12.16 扫雷小游戏未完成
    2017.12.15 计算机算法分析与设计 枚举
    2017.12.14 Java实现-----图书管理系统
    2017.12.13 Java中是怎样通过类名,创建一个这个类的数组
    2017.12.12 基于类的面向对象和基于原型的面向对象方式比较
    2017.12.11 String 类中常用的方法
    2017.12.10 Java写一个杨辉三角(二维数组的应用)
    2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
    spring boot compiler 版本实践
    spring boot 首次请求Controller慢
  • 原文地址:https://www.cnblogs.com/java-chanjuan/p/8118120.html
Copyright © 2011-2022 走看看