vuejs表达式

3 篇文章 0 订阅
1 篇文章 0 订阅

插值表达式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        {{message}} <!--vue的插值表达式 -->
        {{true ? "ok" : "no"}}
        {{number + 1}}
        {{number * 1.5}}
        <!-- 不支持的逻辑表达
        {{var a = 1;}}
        {{if(a=10){}}}
        -->
    </div>

    <script>
        new Vue({
            el: "#app", //由vue接管id为app的区域
            data: {
                message: "Hello Vue!",
                number:100
            }
        });
    </script>
</body>
</html>

v-on点击事件

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        {{message}} <!--vue的插值表达式 --><br>
        <button v-on:click="fun1('Vue v-on')">点击</button>
    </div>

    <script>
        new Vue({
            el: "#app", //由vue接管id为app的区域
            data: {
                message: "Hello Vue!",
                number:100
            },
            methods:{
                fun1:function (msg) {
                    this.msg = msg;
                    alert("点击功能" + msg);
                }
            }
        });
    </script>
</body>
</html>

键盘事件

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
<!--        <input type="text" onkeydown="showKeyCode()">-->
        Vue:<input type="text" v-on:keydown="fun($event)">
    </div>

    <script>
        //传统方法
        /**
        function showKeyCode(){
            var key = event.keyCode;
            alert(key);
        }
         */
        new Vue({
            el: "#app", //由vue接管id为app的区域
            methods:{
                /* $event 是 vue的时间对象 */
                fun:function (event) {
                    var keyCode = event.keyCode;
                    if(keyCode < 48 || keyCode > 57){
                        event.preventDefault();//不让键盘起作用
                    }
                }
            }
        });
    </script>
</body>
</html>

鼠标事件

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<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 v-on:mouseover="fun1" id="div">
            <textarea v-on:mouseover="fun2($event)">这是一个文件域</textarea>
        </div>
    </div>

    <script>
        new Vue({
            el:"#app",
            methods:{
                fun1:function () {
                    alert("鼠标悬停在div上了");
                },
                fun2:function (event) {
                    alert("鼠标悬停在textarea上了")
                }
            }
        })
        //传统方法
        /**
        function divmouseover() {
            alert("鼠标移动到div上")
        }
        function textareamouseover() {
            alert("鼠标移动到text上")
            event.stopPropagation();
        }
         */
        /**
        function showKeyCode(){
            var key = event.keyCode;
            alert(key);
        }
         */

    </script>
</body>
</html>

事件修饰符

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <!--
        @submit.prevent 阻止事件发生
        -->
        <form @submit.prevent action="http://www.alibaba.com" method="post">
            <input type="submit" value="提交">
        </form>
    </div>

    <script>
        new Vue({
            el:"#app"
        })
    </script>
</body>
</html>

on-html text …

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <div id="div1"></div>
        <div id="div2"></div>
        <div v-text="message"></div>
        <div v-html="message"></div>
        <font size="5" :color="ys1">pu</font>
        <font size="5" :color="ys2">pu</font>
    </div>

    <script>
        new Vue({
            //插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
            el:"#app",
            data:{
                message:"<h1>Hello Vue</h1>",
                ys1:"red",
                ys2:"green"
            }
        })

        //js
        window.onload = function () {
            document.getElementById("div1").innerHTML="<h1>Hello</h1>"
            document.getElementById("div2").innerText="<h1>Hello</h1>"
        }
    </script>
</body>
</html>

按键修饰符

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        Vue:<input type="text" v-on:keydown.enter="fun1">
    </div>

    <script>
        new Vue({
            //插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
            el:"#app",
            methods:{
                fun1:function () {
                    alert("按下的是回车!")
                }
            }
        })
    </script>
</body>
</html>

v-for

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="(item,index) in arr">{{item}} = {{index}}</li>
        </ul>
        <ul>
            <li v-for="(key,value) in product">{{key}} : {{value}}</li>
        </ul>
        <table border="1">
            <tr>
                <td>序号</td>
                <td>编号</td>
                <td>名称</td>
                <td>价格</td>
            </tr>
            <tr v-for="(p,index) in products">
                <td>{{index+1}}</td>
                <td>{{p.id}}</td>
                <td>{{p.name}}</td>
                <td>{{p.price}}</td>
            </tr>
        </table>
    </div>

    <script>
        new Vue({
            //插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
            el:"#app",
            data:{
                arr:[1,2,3,4,5],
                product:{
                    id:1,
                    name:"phone",
                    price:500

                },
                products:[
                    {id:1,name:"mac",price:10000},
                    {id:2,name:"phone",price:3000},
                    {id:3,name:"tv",price:4000}
                ]
            }
        })
    </script>
</body>
</html>

v-model

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue</title>
    <script src="js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <form action="" method="post">
            用户名:<input type="text" name="username" v-model="user.username"><br>
            密码:<input type="password" name="password" v-model="user.password"><br>
        </form>
    </div>

    <script>
        new Vue({
            //插值表达式不可用于html标签的属性取值,必须使用v-bind绑定
            el:"#app",
            data:{
                user:{
                    username:"test",
                    password:"1234",
                }
            }
        })
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值