美文网首页
vue基本语法

vue基本语法

作者: 過眼云烟 | 来源:发表于2019-05-28 08:42 被阅读0次
快速入门

<body>
        <div id="app">
            {{message}}<!--Vue的插值表达式,把data中定义的数据显示到此处-->

            <!-- 三元运算符 -->
            {{ false ? "OK" : "No" }}

            <!-- 数学运算-->
            {{number*3.14}}

            <!--插值表达式不支持
            {{var a = 1;}}
            {{if(a = 10){}}}
            -->

        </div>
    </body>
    <script>
        //view model
        //创建Vue对象
        new Vue({
            el:"#app",//由vue接管id为app区域
            data:{
                message:"Hello Vue!  EESY",//注意:此处不要加分号
                number:100
            }
        });
    </script>

v-on: click 事件绑定

    <body>
        <div id="app">
            {{message}}  
            <button v-on:click="fun1('Vue v-on')">vue的onclick</button>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                message:"Hello Vue!"
            },
            methods:{
                fun1:function(msg){
                    alert("Hello");
                    this.message = msg;
                }
            }
        });
    </script>

v-on:keydom 键盘绑定

<body>
        <div id="app">
            Vue:<input type="text" v-on:keydown="fun($event)">
            <hr/>
            传统JS:<input type="text"  onkeydown="showKeyCode()"/>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            methods:{
                /* $event 它是vue中的事件对象  和我们传统js的event对象是一样的  */
                fun:function(event){
                    var keyCode = event.keyCode;
                    if(keyCode < 48  || keyCode > 57){
                        //不让键盘的按键起作用
                        event.preventDefault();
                    }
                }
            }
        });


        //传统js的键盘按下事件
        function showKeyCode(){
            //event对象和我们的document对象以及window对象是一样的,可以不用定义直接使用
            var keyCode = event.keyCode;
            if(keyCode < 48  || keyCode > 57){
                //不让键盘的按键起作用
                event.preventDefault();
            }
            // alert(keyCode);
            // if(event.keyCode == 13){
            //     alert("你按的是回车");
            // }
        }
    </script>

v-on:mouseover 获取焦点

<body>
        <div id="app">
            <div @mouseover="fun1" id="div">
                <textarea @mouseover="fun2($event)">这是一个文件域</textarea>
            </div>

            <!--<div onmouseover="divmouseover()" id="div">
                <textarea onmouseover="textareamouseover()">这是一个文件域</textarea>
            </div>-->
        </div>
    </body>
    <script>
        //view model
        /**
         * @事件名称  就是  v-on:事件名称的简写方式
         * @mouseover它就等同于v-on:mouseover
         */
        new Vue({
            el:"#app",
            methods:{
                fun1:function(){
                    alert("鼠标悬停在div上了");
                },
                fun2:function(event){
                    alert("鼠标悬停在textarea上了");
                    event.stopPropagation();
                }
            }
        });


        //传统的js方式
        function divmouseover(){
            alert("鼠标移动到了div上了");
        }

        function textareamouseover(){
            alert("鼠标移动到了textarea上了");
            event.stopPropagation();
        }
    </script>

v-on:事件修饰符(中断,停止)


    <body>
        <div id="app">
            <form @submit.prevent action="http://www.itheima.com" method="post" >
                <input type="submit" value="提交">
            </form>
            <!--<form action="http://www.itheima.com" method="post" onsubmit="return checkForm()">
                <input type="submit" value="提交">
            </form>-->
            <hr/>
            <div @mouseover="fun1" id="div">
                <textarea @mouseover.stop="fun2($event)">这是一个文件域</textarea>
            </div>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            methods:{
                fun1:function(){
                    alert("鼠标悬停在div上了");
                },
                fun2:function(event){
                    alert("鼠标悬停在textarea上了");
                }
            }
        });
        
        
        //传统js方式
        function checkForm(){
            alert(1);
            //表单验证必须有一个明确的boolean类型返回值
            //在应用验证方法时必须加上 return  方法名称
            return false;
        }
    </script>

v-on:按钮修饰符

    <body>
        <div id="app">
            Vue:<input type="text" @keydown.enter="fun1">
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            methods:{
                fun1:function(){
                    alert("按下的是回车");
                }
            }
        });

v-text 与 v-html

    <body>
        <div id="app">
            <div v-text="message"></div>
            <div v-html="message"></div>
            <!--<div id="div1"></div>
            <div id="div2"></div>-->
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                message:"<h1>Hello Vue</h1>"
            }
        });

        //传统js的innerText和innerHTML
        window.onload = function(){
            document.getElementById("div1").innerHTML="<h1>Hello</h1>";
            document.getElementById("div2").innerText="<h1>Hello</h1>";
        }
    </script>

v-bind不同写法

<body>
       <div id="app">
           <font size="5" v-bind:color="ys1">第一种不同写法</font>
           <font size="5" :color="ys2">第二种不同写法</font>
       </div>
   </body>
   <script>
       //view model
       //插值表达式不能用于html标签的属性取值
       //要想给html标签的属性设置变量的值,需要使用v-bind
       //v-bind也可以简化写法   直接使用:
       new Vue({
           el:"#app",
           data:{
               ys1:"red",
               ys2:"green"
           }
       })
   </script>

v-model

<body>
        <div id="app">
            <form action="" method="post">
                用户名:<input type="text" name="username" v-model="user.username"><br/>
                密码:<input type="text" name="password" v-model="user.password"><br/>
            </form>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                user:{
                    username:"test",
                    password:"1234"
                }
            }
        })
    </script>

v-for 遍历数组

<body>
        <div id="app">
            <ul>
                <li v-for="(item,index) in arr ">{{item}}={{index}} </li>
            </ul>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                arr:[1,2,3,4,5]
            }
        })
    </script>

v-for遍历对象

<body>
        <div id="app">
            <ul>
                <li v-for="(key,value) in product ">{{value}}===={{key}} </li>
            </ul>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
               product:{
                   id:1,
                   name:"笔记本电脑",
                   price:5000
               }
            }
        })
    </script>

v-for遍历对象二

<body>
        <div id="app">
            <table border="1">
                <tr>
                    <td>序号</td>
                    <td>编号</td>
                    <td>名称</td>
                    <td>价格</td>
                </tr>
                <tr v-for="(product,index) in products ">
                    <td>{{index}}</td>
                    <td>{{product.id}}</td>
                    <td>{{product.name}}</td>
                    <td>{{product.price}}</td>
                </tr>
            </table>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                products:[
                    { id:1,name:"笔记本电脑",price:5000 },
                    { id:2,name:"手机",price:3000 },
                    { id:3,name:"电视",price:4000 }
                ]
            }
        })
    </script>

v-if 与 v-show

    <body>
        <div id="app">
            <span v-if="flag">风电吃亏</span>
            <span v-show="flag">itcast</span>
            <button @click="toggle">切换</button>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                flag:false
            },
            methods:{
                toggle:function(){
                    this.flag = !this.flag;
                }
            }
        })
    </script>

vue生命周期

    <body>
        <div id="app">
            {{message}}
        </div>
    </body>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                message: 'hello world'
            },
            beforeCreate: function() {
                console.log(this);
                showData('创建vue实例前', this);
            },
            created: function() {
                showData('创建vue实例后', this);
            },
            beforeMount: function() {
                showData('挂载到dom前', this);
            },
            mounted: function() {
                showData('挂载到dom后', this);
            },
            beforeUpdate: function() {
                showData('数据变化更新前', this);
            },
            updated: function() {
                showData('数据变化更新后', this);
            },
            beforeDestroy: function() {
                vm.test = "3333";
                showData('vue实例销毁前', this);
            },
            destroyed: function() {
                showData('vue实例销毁后', this);
            }
        });

        function realDom() {
            console.log('真实dom结构:' + document.getElementById('app').innerHTML);
        }

        function showData(process, obj) {
            console.log(process);
            console.log('data 数据:' + obj.message)
            console.log('挂载的对象:')
            console.log(obj.$el)
            realDom();
            console.log('------------------')
            console.log('------------------')
        }
        // vm.message = "good...";
        vm.$destroy();
    </script>

相关文章

  • Vue基本语法

    一、Vue介绍 1、Vue.js 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面...

  • vue基本语法

    模板语法 文本 使用{{}}进行数据绑定 原始html 属性 使用表达式 指令 指令带有v前缀的属性 参数 动态参...

  • Vue基本语法

    一、Mustache 如何将data中的文本数据,插入到HTML中呢?我们已经学习过了,可以通过Mustache语...

  • vue基本语法

    快速入门 v-on: click 事件绑定 v-on:keydom 键盘绑定 v-on:mouseover 获取焦...

  • VUE基本语法

    一、template 二、script 三、style

  • vue基本语法

    一、推荐插件 Live Server 插件,保存后自动刷新浏览器 open in browser, 可以将htm...

  • 《二》、Vue核心——基本使用

    一、Vue的基本使用 1、编码 2、理解 Vue 的 MVVM 3、模板语法 (1)、模板语法的理解  Ⅰ、动态的...

  • 01Vue基本使用与模板语法

    Vue基本使用与模板语法 一. 基本使用 Hello World快速入门 二. 模板语法 指令 概述 指令的本质就...

  • vue基本语法2

    vue的模板里面 所有的内容要被一个根节点包含起来 数据绑定 数据绑定改变试讲 定义方法 执行方法 获取数据 改变...

  • Vue的基本语法

    本节将学习Vue的基础语法,为了简单,在html页面中采用 标签的形式引入vue。 主要目录: (1)声明书渲染 ...

网友评论

      本文标题:vue基本语法

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