美文网首页
Vue 学习笔记入门篇-数据绑定,指令,事件

Vue 学习笔记入门篇-数据绑定,指令,事件

作者: hzl的学习小记 | 来源:发表于2019-07-19 10:00 被阅读0次

Vue 学习笔记入门篇-数据绑定,指令,事件


2.1.1 vue 实例和数据绑定

//---- 环境搭建------
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

通过构造函数 Vue 就可以创建一个 Vue 的根实例,并启动 Vue 应用---入口

<div id = "app">
    {{msg}}
</div>
var app =new Vue({
//element, 用于指定页面中己存在的 DOM 元素,挂载到DOM中,也可以是CSS
el:'#app',
//声明应用内需要双向绑定的数据
data:{ msg: "vue"}
})

el:

el 用于指定一个页面中己存在的 DOM 元素来挂载 Vue实例,可以是标签。也可以是css语法

data:

通过 Vue 实例的 data 选项,可以声明应用内需要双向绑定的数据。建议所有会用到的数据都预先在 data 内 声明,这样不至于
将数据散落在业务逻辑中,难以维护。也可以指向一个已经有的变量。

挂载成功后,我们可以通过app.$el
来访问该元素。Vue 提供了很多常用的实例属性与方法。

注意

  1. -- 访问Vue实力的属性:都是以el开头,如app.el
  2. -- 访问data元素的属性 -- 世界使用app.属性名, 如app.msg

2.1.2 生命周期钩子

jquery---$(document).ready()

* created: 实例创建完成后调用,此阶段完成了数据的观测等,但尚未挂载, $el 还不可用。需要初始化处理一些数据时会比较有用,后面会学习到----还未挂载到DOM元素时。
* mounted: el 挂载到实例上后调用,一般我们的第一个业务逻辑会在这里开始 。相当于 $(document).ready()---刚刚挂载
* beforeDestroy: 实例销毁之前调用。主要解绑一些使用 addEventListener 监听的事件等。

2.1.3 文本插值和表达式

语法: 使用双大括号(Mustache语法)"{{ }}"是最基本的文本插值方法,他会自动将我们双向绑定的数据实时显示出来。

用法:
在{{ }}中,处了简单的绑定属性值外,还可以使用JavaScript表达式进行简单的运算、三元运算等---实例:

Vue.js只支持单个表达式,不支持语句和流控制

{{ 6+6 *3}}---可以进行简单的运算 <br>
{{ 6<3 ? msg :a}}---可以用三元运算符 <br>

不支持的的:

{{if(6>3){}}-----注意:文本插值的形式,其中不能书写表达式,支持单个表达式
{{var a = 6}}--也是多行表达式----var a ;a = 6;
〈!一这是语旬,不是表达式 一〉
{ { var book = ’ Vue . js ’ }}
〈!一不能使用流控制,要使用三元运算 一〉
{{ if (ok) return msg ))

2.2.2 过滤器

  1. Vue. 支持在{{}}插值的尾部添加一小管道符 “ | ” 对数据进行过滤,经常用于格
    式化文本,比如字母全部大写、货币千位使用逗号分隔等。
  2. 过滤的规则是自定义
    的, 通过给 Vue 实例添加选项 filters 来设置
    过滤器:
{{ data | filter1 |filter2}}
{{date | formatDate(66,99)}} 中的第一个和第二个参数,分别对应过滤器的第二个和
第三个参数

指令和事件

指令( Directives )是 Vue 模板中最常用的一项功能,它带有前缀 v-,能帮我们
快速完成DOM操作。循环渲染。显示和隐藏
本节目标 v-text , v-html , v-bind , v-on
v-­text:—————­解析文本 和{{ }} 作用一样
v­-html:————— 解析html
v-­bind—————–v­bind 的基本用途是动态更新 HTML 元素上的属性,比如 id 、
class 等,本节只介绍基本章节,后面章节会更加深入详细讲述
v­-on——————它用来绑定事件监听器


v­-on具体介绍
在普通元素上, v-­on 可以监听原生的 DOM 事件,除了 click 外,还有
dblclick、 keyup, mousemove 等。表达式可以是一个方法名,这些方法都
写在 Vue 实例的 methods 属性内,并且是函数的形式,函数内的 this 指向
的是当前 Vue 实例本身,因此可以直接使用 this.xxx 的形式来访问或修改数

一个自己做的Demo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>demo</title>
    <style>
      .red {
          background: red;
          height: 18px;
      }
    </style>
</head>
<body>
//在页面中显示当前时间

    <div id="app">
        {{name}} <br>
        <!--过滤器,| 后面接过滤器的名字-->
        {{name | formatDate}}
        <br>
        <div v-html="html"></div>
        <span v-text="weather"></span>
        <br>
        <div v-bind:class="className"></div>
        <button v-on:click="click">{{countnum}}</button>
    </div>
    <script src="http://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        var plusDate = function(value){
         //在小于10的时候补0
            return value < 10 ? '0' + value : value
        }
      var app = new Vue({
          el : '#app',
          data : {
              name: new Date(),
              html: '<div>你好</div>',
              weather: 'sunny',
              className: 'red',
              countnum: 0
          },
          //定义过滤器
          filters:{
          //这里的value就是需要过滤的数据
              formatDate: function(value) {
                  var date = new Date(value)
                 //将字符串转化为date类型
                  var year = date.getFullYear()
                  var month = plusDate(date.getMonth()+1)
                  var day = plusDate(date.getDate())
                  var hours = plusDate(date.getHours())
                  var min = plusDate(date.getMinutes())
                  var sec = plusDate(date.getSeconds())
                  //将整理的数据返回
                  return year + '--' + month + '--' + day + '  ' + hours + ':' + min + ':' + sec
              }
          },
          mounted: function(){
              var _this = this
              this.timer = setInterval(function(){
                  _this.name = new Date()
              },1000)
          },
          methods: {
              click: function(){
                  this.countnum = this.countnum + 1 
              }
          },
          beforeDestroy: function(){
          if(this.timer){
              clearInterval(this.timer)}
          }
      })
    </script>
</body>
</html>

语法糖

语法糖是指在不影响功能的情况下 , 添加某种简洁方法实现同样的效果 , 从而更加方便程
序开发。

v-bind ——> : (冒号)
v-on ——> @

相关文章

网友评论

      本文标题:Vue 学习笔记入门篇-数据绑定,指令,事件

      本文链接:https://www.haomeiwen.com/subject/fyxjlctx.html