zoukankan      html  css  js  c++  java
  • Vue.js快速入门

    VueJS介绍

    概述

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的前端框架。Vue 的核心库只关注视图层
    Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
    上手比较容易,

    MVVM模式

    MVVM是Model-View-ViewModel的简写
    它本质上就是MVC 的改进版
    MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开
    MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model)
    Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层
    它的核心是 MVVM 中的 VM,也就是 ViewModel
    ViewModel负责连接 View 和 Model,保证视图和数据的一致性
    在这里插入图片描述

    快速入门

    1.在页面中引入vue的js文件。
    在这里插入图片描述

    <script src="js/vuejs-2.5.16.js"></script>
    

    2.在页面中定义一个根节点。一般就是div
    在这里插入图片描述

    <div id="root">
        <input type="text" v-model="message">
        {{message}}
    </div>
    

    3.在js代码中初始化一个vue对象,基于上面的根节点初始化。
    在这里插入图片描述

    <script>
        //初始化Vue对象
        new Vue({
            //初始化vue对象的根节点
            el:"#root",
            //定义页面使用的模型数据js变量
            data:{
                message:"hello vue!"
            }
        });
    </script>
    

    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <body>
    <div id="root">
        <input type="text" v-model="message">
        {{message}}
    </div>
    </body>
    <script>
        //初始化Vue对象
        new Vue({
            //初始化vue对象的根节点
            el:"#root",
            //定义页面使用的模型数据js变量
            data:{
                message:"hello vue!"
            }
        });
    </script>
    </html>
    

    事件绑定

    什么是事件

    图形界面的操作系统都是事件驱动。
    系统中只要是有一个变化就会触发一个事件。
    js也是事件驱动的。

    单击事件绑定

    原生JS

    onclick="onClick()"
    

    vuejs绑定

    v-on:事件名称=处理方法
    简写:@click=处理方法
    

    示例
    绑定事件
    在这里插入图片描述

    <div id="root">
        <h1>{{message}}</h1>
        <button v-on:click="onClick()">点我</button>
        <button @click="onClick()">点我</button>
    </div>
    

    处理事件
    在这里插入图片描述

    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                message:"hello vue!"
            },
            methods:{
                onClick:function () {
                    alert("你点了我");
                    this.message = "你已经点击了按钮";
                }
            }
        });
    </script>
    

    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <body>
    <div id="root">
        <h1>{{message}}</h1>
        <button v-on:click="onClick()">点我</button>
        <button @click="onClick()">点我</button>
    </div>
    </body>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                message:"hello vue!"
            },
            methods:{
                onClick:function () {
                    alert("你点了我");
                    this.message = "你已经点击了按钮";
                }
            }
        });
    </script>
    </html>
    

    键盘事件

    事件名称

    keydown
    在文本框中敲击回车键,会触发一个keydown。

    概述

    敲击键盘上任意按键都会触发keydown事件
    每个按键都有一个唯一的编号keycode
    可以判断keycode是多少就可以判断出那个键按下。

    示例
    事件绑定
    在这里插入图片描述

    <div id="root">
        <input type="text" @keydown="onKeydown($event)">
        <br>
        keycode:{{keyCode}}
    </div>
    
    

    处理事件
    在这里插入图片描述

    new Vue({
            el:"#root",
            data:{
                keyCode:0,
            },
            methods:{
                onKeydown:function (event) {
                    var keyCode = event.keyCode;
                    this.keyCode = keyCode;
                    if (keyCode == 13) {
                        alert("你按下了回车键!");
                    }
                }
            }
        });
    

    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <body>
    <div id="root">
        <input type="text" @keydown="onKeydown($event)">
        <br>
        keycode:{{keyCode}}
    </div>
    
    </body>
    <script>
        new Vue({
            el:"#root",
            data:{
                keyCode:0,
            },
            methods:{
                onKeydown:function (event) {
                    var keyCode = event.keyCode;
                    this.keyCode = keyCode;
                    if (keyCode == 13) {
                        alert("你按下了回车键!");
                    }
                }
            }
        });
    </script>
    </html>
    

    按键修饰符

    在监听键盘事件时,我们经常需要监测常见的键值
    vue 定义了一些按键修饰符, 可以直接使用监听,不需要再判断keycode

    常用按钮修饰符

    	.enter 
    	.tab 
    	.delete (捕获 “删除” 和 “退格” 键) 
    	.esc 
    	.space 
    	.up 
    	.down 
    	.left 
    	.right
    

    示例
    在这里插入图片描述

    <div id="root">
        <input type="text" name="keyword" v-on:keydown.enter="enterKeyDown()">
    </div>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            methods:{
                enterKeyDown:function () {
                    alert("回车时间触发");
                }
            }
        });
    </script>
    

    鼠标事件

    事件名称

    mousemove
    当鼠标移动时就会触发事件

    示例
    在这里插入图片描述

    <div id="root">
        <div id="testdiv"  @mousemove="onMouseMove($event)">
            X:{{X}},Y:{{Y}}
        </div>
    </div>
    

    处理事件
    在这里插入图片描述

    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                X:0,
                Y:0
            },
            methods:{
                onMouseMove:function (event) {
                    //取鼠标位置
                    this.X = event.x;
                    this.Y = event.y;
                }
            }
        });
    </script>
    

    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <style>
        #testdiv{
            margin-left: 100px;
             200px;
            height: 200px;
            background-color: red;
        }
    </style>
    <body>
    <div id="root">
        <div id="testdiv"  @mousemove="onMouseMove($event)">
            X:{{X}},Y:{{Y}}
        </div>
    </div>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                X:0,
                Y:0
            },
            methods:{
                onMouseMove:function (event) {
                    //取鼠标位置
                    this.X = event.x;
                    this.Y = event.y;
                }
            }
        });
    </script>
    </body>
    </html>
    

    事件修饰符

    阻止事件默认
    传统阻止事件默认
    在这里插入图片描述
    在这里插入图片描述
    事件修饰符
    在这里插入图片描述
    事件冒泡
    在这里插入图片描述

    数据绑定

    插值

    数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值
    无论何时,绑定的数据对象上属性发生了改变,插值处的内容都会更新

    示例
    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <body>
    <div id="root">
        {{1+2}}<br>
        {{'aaa'+'123'}}<br>
        {{3>2?true:false}}<br>
        {{user.username}}<br>
        {{user.password}}
    
    
    
    </div>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                num:100,
                user:{username:"joker",password:"123"}
            },
            methods:{
    
            }
        });
    </script>
    </body>
    </html>
    

    v-text&v-html

    v-text指令可以将变量的值原封不动的显示到页面的标签内部

    示例
    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>
    <body>
    <div id="root">
        <div>{{content}}</div>
        <div v-text="content"></div>
        <div v-html="content"></div>
    </div>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                content:"<h1>abc</h1>"
            },
        });
    </script>
    </body>
    </html>
    

    v-bind

    v-bind只能将变量的值绑定到属性上
    当属性发生变化后,并不能改变变量的值

    示例
    在这里插入图片描述

    <div id="root">
        <input type="text" v-bind:value="message">
        {{message}}<br>
    </div>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                message:"testData"
            }
        });
    </script>
    
    

    双向绑定

    修改文本框中的内容,对应的变量的值也随之发生变化
    值变化时, 文本的内容随着变化
    在这里插入图片描述

    <div id="root">
        <input type="text" v-model="message">
        {{message}}<br>
        <button @click="testClick">点击</button>
    </div>
    <script>
        //初始化Vue对象
        new Vue({
            el:"#root",
            data:{
                message:"testData"
            },
            methods:{
                testClick:function () {
                    this.message = 'clickData'
                }
            }
        });
    </script>
    

    集合类型绑定

    v-for="item in list"
    v-for="(item,index) in list"
    v-for=" (item,index) in listObj"
    v-for="(value,key,index) in obj"

    节点控制

    v-if
    v-show

    生命周期

    beforeCreate:function(){}
    	创建前状态
    created:function(){}
    	创建完毕状态
    beforeMount:function(){}
    	挂载前状态
    mounted:function(){}
    	挂载完毕状态
    beforeUpdate(){}
    	更新界面之前
    updated:function(){}
    	更新界面之后
    beforeDestroy:funection(){}
    	销毁前状态
    destroyed
    	销毁之后状态
  • 相关阅读:
    21个高质量的Swift开源iOS App
    浅谈 JavaScriptCore
    开发完 iOS 应用,接下去你该做的事
    Xcode8的调试技能Memory Graph 实战解决闭包引用循环问题
    减肥App计划
    在管理实际中,心态很重要,当你以欣赏的态度去看一件事,你便会看到许多优点,以批评的态度,你便会看到无数缺点。
    怎样做才是一个独立自主的人?
    《圣经、》箴言篇13.3
    做事情需要坚持需要毅力更加需要观察和方法。(人生会遭遇许多事,其中很多是难以解决的,这时心中被盘根错结的烦恼纠缠住,茫茫然不知如何面对?如果能静下心來思考,往往会恍然大悟。 )
    10000单词积累,从今天开始(待续)。。。
  • 原文地址:https://www.cnblogs.com/joker-dj/p/13416412.html
Copyright © 2011-2022 走看看