美文网首页
Vue 基础入门

Vue 基础入门

作者: 养乐多__ | 来源:发表于2019-08-03 08:35 被阅读0次

1. Vue.js 实例和数据绑定

通过构造函数 Vue() 就可以创建一个 Vue 的根实例,并启动 Vue 应用。
Vue 实例就是使用 Vue.js 的入口。

<!-- 挂载到这里 -->
<div id="app">
    {{message}}
</div>
<!-- 环境搭建 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!-- 创建实例 -->
<script>
var app = new Vue({
    el: '#app',  // element,用于指定页面中已经存在的DOM元素,挂载到DOM中
    data: {  // 声明应用内需要双向绑定的数据
        message: 'Hello,Vue!'
    }
})
</script>
  • el
    el 即 element,是必不可少的选项,用于指定一个页面中已存在的 DOM 元素来挂载 Vue 实例,用标签(如 div)或 CSS 语法(如 #app)都可以。挂载后在 Vue 实例中定义的所有属性和方法都可以在此 DOM 中使用。
  • data
    通过 Vue 实例的 data 选项,可以声明应用内需要双向绑定的数据。建议所有会用到的数据都预先在 data 内声明,这样不至于将数据散落在业务逻辑中,难以维护。也可以指向一个已经有的变量。
  • 访问 Vue 实例的属性,在属性前加 $,如 app.$e1app.$data
    访问 data 元素的属性,直接 app.属性名,如 app.message

2. 生命周期钩子

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

下面我们通过一个例子来理解生命周期钩子,如在页面中实时显示当前时间:

<div id="app">
    {{date}}
</div>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            date: new Date()
        },
        // 生命周期钩子
        created: function() {
              alert("我是Vue实例,创建完成,还未挂载到Dom")
        },
        mounted: function(){
            alert("我是Vue实例,已经挂载到DOM")
            var _this = this // this代表Vue实例本身
            this.timer = setInterval(function(){
                _this.date = new Date()
            }, 1000)
        },
        beforeDestroy: function(){
            if(this.timer){
                clearInterval(this.timer)
            }
        }
    })
</script>

3. 文本差值和表达式

  1. 语法
    双大括号(Mustache 语法){{}} 是最基本的文本插值方法,它会自动将我们双向绑定的数据实时显示出来。在前文中我们已经使用过:
<div id="app">
    {{message}}
</div>
  1. 用法
  • 在文本差值的 {{}} 中,除了简单的绑定属性值外,还可以使用 JavaScript 表达式进行简单的运算 、 三元运算等。
<div id="app">
    {{6*3}}
    {{3>6 ? message : a}}
</div>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            message: 'Hello,Vue!',
            a: 1
        }
    })
</script>
  • Vue.js 只支持单个表达式,不支持多行表达式,不支持语句和流控制。

例:
{{ 6+6*3 }} --- 可以进行简单的运算
{{ 6<3 ? message : a}} --- 可以使用三元运算符
注意:
{{ if(6>3) {return message} }} --- 不支持流控制,要使用三元运算
{{ var a = 6 }} --- 相当于 var a ; a = 6;,这是语句,不是表达式

4. 过滤器

  1. Vue 支持在 {{}} 插值的尾部添加管道符 | 对数据进行过滤。过滤器经常用于格式化文本,比如字母全部大写、货币千位使用逗号分隔等。过滤的规则是自定义的, 通过给 Vue 实例添加选项 filters 来设置:
{{data | filter}}

| 后面是过滤器的名字。

  • 例:将实时时间进行过滤使其格式化:
<div id="app">
    {{date}}
    {{date | formatDate}} <!-- 过滤器,| 后面是过滤器的名字 -->
</div>
<script>
    // 实现功能:在页面中实时显示当前时间
    // 在月份、日期、小时小于10时前面补0
    var plusZero = function(value){
        return value<10 ? '0'+value : value
    }
    var app = new Vue({
        el: '#app',
        data: {
            date: new Date(),
        },
        // 定义过滤器
        filters: {
            formatDate: function(value,a,b){ // 这里的value就是需要过滤的数据
                var date = new Date(value) // 将字符串转化为date类型
                var year = date.getFullYear()
                var month = plusZero(date.getMonth()+1)
                var day = plusZero(date.getDay())
                var hours = plusZero(date.getHours())
                var min = plusZero(date.getMinutes())
                var sec = plusZero(date.getSeconds())
                return year+'--'+month+'--'+day+'  '+hours+':'+min+':'+sec+' '+a+' '+b
            }
        },
        mounted: function(){
            var _this = this // this代表Vue实例本身
            this.timer = setInterval(function(){
                _this.date = new Date()
            }, 1000)
        },
        beforeDestroy: function(){
            if(this.timer){
                clearInterval(this.timer)
            }
        }
    })
</script>
效果如下图所示,第一行是直接获取的时间,第二行是经过滤器过滤后的时间,即格式化后的时间: 过滤器
  1. 过滤器的串联:
{{data | filter1 | filter2}}
  1. 过滤器的参数:
{{date | formatDate(arg1, arg2)}}

实例中第一个和第二个参数,分别对应过滤器的第二个和第三个参数,如:{{date | formatDate(11, 22}} 对应 formatDate: function(value,a,b){} 过滤器函数中的参数 a 和 b。

5. 指令和事件

  1. 指令( Directives )是 Vue 模板中最常用的一项功能,它带有前缀 v-,能帮我们快速完成 DOM 操作,循环渲染、显示和隐藏。

  2. 常用指令

  • v-text:­解析文本,和 {{}} 作用一样
  • v-html:解析 html
  • v-bind:动态更新 HTML 元素上的属性,如 idclass 等(注意 v-bind 后面是冒号)
  • v-on:绑定事件监听器,如 clickkeyup 等(函数必须写在 methods 里面

    注意:前两者后面跟 =,后两者后面跟 :

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

  1. 常用指令实例演示:
<style>
    .transRed{ background: red; height: 30px; width: 100px; }
</style>
<div id="app">
    1. v-text 指令:解析文本 <br>
    <span v-text="apple"></span> <br>
    2. v-html 指令:解析html <br>
    <span v-html="banana"></span> <br>
    3. v-bind 指令:绑定活的属性 <br>
    <div v-bind:class="className"></div> <br>
    4. v-on 指令:绑定事件监听器 <br>
    <button v-on:click="count">{{countNum}}</button> <!--为按钮添加监听事件--><br>
</div>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            apple: '苹果',
            banana: '<span style="color: yellow;">香蕉</span>',
            className: 'transRed',
            countNum: 0
        },
        methods: {
            count: function(){
                this.countNum = this.countNum + 1
            }
        }
    })
</script>
常用指令演示
  1. Vue 中用到的所有方法都定义在 methods 中。

6. 语法糖

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

上例中可以替换为语法糖的形式:

<div v-bind:class="className"></div>
<div :class="className"></div>

<button v-on:click="count">{{countNum}}</button>
<button @click="count">{{countNum}}</button>

相关文章

  • vue基础入门

    vue基础入门

  • Vue.js基础入门

    今天,给大家分享下Vue.js基础入门,我主要由了解Vue.js、开始起步、语法三个部分简单的写了基础入门知识,希...

  • Vue.js基础入门

    今天,给大家分享下Vue.js基础入门,我主要由了解Vue.js、开始起步、语法三个部分简单的写了基础入门知识,希...

  • VUE基础知识入门

    VUE基础知识入门 VUE官方文档教程链接:VUE 1.什么是Vue.js Vue.js(读音 /vjuː/, 类...

  • 渐进式框架 Vue.js 基础入门及简单编程演示

    渐进式框架 Vue.js 基础入门及简单编程演示 ---------------------- 概念基础 ----...

  • Vue的基础入门

    Vue的基础入门 一、Vue的基础入门 简介作者:尤雨溪 版本:2.X版本 预估4-5月份3.0版本会发布 官网...

  • Python 高端课程培训,CMDB自动化运维培训!

    1、入门小基础(8个课时): 1、沙盒环境,py环境安装使用 2、vue 基础语法与组件学习 3、vue + el...

  • 实例学习vue.js目录

    目录 入门篇 初识vue vue基础指令 vue实例:标语大作战 事件修饰符 双向数据绑定 使用v-for遍历数据...

  • Vue基础入门

    第一节(指令) 入门案例 if else else-if v-show v-show只是显示和隐藏,修改的是css...

  • vue入门基础

    1.安装git,通过npm install vue下载vue插件 2.通过script导入vue.js插件 3.然...

网友评论

      本文标题:Vue 基础入门

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