vue基础之命令

一什么是Vue

Vue是一个构建用户界面的JAVASCRITPO框架。

二怎样使用Vue

 1.引入vue.js
        <script src="vue.js"></script>

2.展示HTML
        <div id="app">
                <input type="text" v-model="msg">
                <p>{{msg}}</p>
         </div>
3.建立vue对象
               new Vue({
                    el: "#app", //表示在当前这个元素内开始使用VUE
                    data:{
                        msg: ""
                    }
                })                

三在元素中插入值

 

 

{{}},里面可以放表达式
 指令:是带有V-前缀的特殊属性,通过属性来操作元素

 v-text:在元素当中插入值
 v-html:在元素不中不仅可以插入文本,还可以插入标签
 v-if: 根据表达式的真假值来动态插入和移除元素
 v-show:根据表达式的真假值来隐藏和显示元素
 v-for:根据变量的值来循环渲染元素
 v-on:监听元素事件,并执行相应的操作
 对数组的操作:
 push
 pop
 shift
 unshift
 splice
 reverse

 v-bind:绑定元素的属性来执行相应的操作
 v-model:实现了数据和视图的双向绑定
 分成了3步:
 1)把元素的值和数据相绑定
 2)当输入内容时,数据同步发生变化,视图  ---数据的驱动
 3)当改变数据时,输入内容也会发生变化,数据-》视图的驱动

1. v-html动态生成html标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<style>
    ul li{
        list-style: none;
    }
</style>
<body>

<div id="app">
   <ul>
       <li>
           <input type="checkbox">苹果
       </li>
        <li>
           <input type="checkbox">香蕉
       </li>
        <li>
           <input type="checkbox">葡萄
       </li>
        <li>
           <input type="checkbox" v-on:click="create()">其它
       </li>
       <li v-html="htmlstr" v-show="test"></li>
   </ul>


</div>

<script>
    var vm = new Vue({
        el: "#app",//表示在当前这个元素内开始使用VUE
        data:{
            htmlstr:"<textarea></textarea>",
            test:false
        },
        methods:{
            create:function () {
                this.test=!this.test;
            }
        }
    })
</script>
</body>
</html>

<!--动态生成HTML-->
<!--
小知识点:去掉li标签前面的小点,list-style=none
复选框:type="checkbox"
v-html="htmlstr"在元素不中不仅可以插入文本,还可以插入标签,动态生成HTML标签
v-show:根据表达式的真假值来隐藏和显示元素

-->

2 . v-model

<!--双向绑定-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
<div id="app">
    <input type="text" v-model="msg">
    <p>{{msg}}</p>
</div>
<script>
    new Vue({
        el:"#app",//表示在当前这个元素内开始使用Vue
        data:{
            msg:""
        }
    })
</script>
</body>
</html>

<!--
    v-model:实现了数据和视图的双向绑定
     分成了3步:
     1)把元素的值和数据相绑定
     2)当输入内容时,数据同步发生变化,视图  ---数据的驱动
     3)当改变数据时,输入内容也会发生变化,数据-》视图的驱动
-->

v-on

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <style>
        ul li{
            list-style: none;
            display: inline-block;
            border: 1px solid cornflowerblue;
            height:40px;
            line-height: 40px;
            width: 120px;
            text-align: center;
        }
    </style>
</head>
<body>
    <div id="mybox">
        <ul>
            <li>
                <span v-on:click="qh(true)">二唯码登录</span>
            </li>
            <li>
                <span v-on:click="qh(false)">邮箱登录</span>
            </li>
        </ul>

        <div v-show="temp">
            <img src="erma.jpg">
        </div>
        <div v-show="!temp">
            <form action="http://mail.163.com" method="post">
                <p><input type="email"></p>
                <p><input type="password"></p>
                <p><input type="submit" value="登录"></p>
            </form>
        </div>
    </div>
    <script>
        new Vue({
            el: "#mybox",
            data: {
                temp: true
            },
            methods: {
                qh: function (t) {
                    this.temp = t
                }
            }
        })
    </script>
</body>
</html>

v-for

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <style>
        ul li{
            list-style: none;
        }
    </style>
</head>
<body>
<div id="app">
    <ul>
        <li v-for="(item,index1) in aaa">
            {{item}}:{{index1}}
        </li>
    </ul>
    <ul>
        <li v-for="item1 in ccc">
            {{item1.username}}
            {{item1.age}}
            {{item1.sex}}
        </li>
    </ul>
    <ul>
        <li v-for="(item3,key,index) in bbb">
            {{item3}}:{{key}}:{{index}}
        </li>
    </ul>

<input type="button" value="点我吧" @click="show()">
<a :href="url">我想去百度</a>
</div>
<script>
    new Vue({
        el:"#app",//表示在当前这个元素内开始使用VUE
        data:{
            aaa:[11,22,33,44,55],
            bbb:{a:"刘能",b:"赵四",c:"谢广坤",d:"谢大脚",e:"王老七"},
            ccc:[
                {username:"长贵"},
                {age:20},
                {sex:"male"}
            ],
            str:"亲爱的,我来了",
            url:"http://www.baidu.com"
        },
        methods:{
            show:function () {
                this.aaa.pop()
            }
        }
    })
</script>
</body>
</html>


<!--
    v-for:根据变量的值来循环渲染元素
-->

v-if ,v-else,v-show

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<body>
<div id="app">
    <p v-if="aaa">我是斯蒂芬库里</p>
    <p v-else>我是凯文杜兰特</p>
    <p v-show="bbb">我是泽勒卡戴珊</p>
    <p v-show="ok" style="color: aqua">你们喜欢我吗?</p>

</div>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            aaa:true,
            bbb:true,
            ok:true
        }
    })
    window.setInterval(function () {
        vm.ok = !vm.ok;
    },500)
</script>
</body>
</html>

<!--
    v-if: 根据表达式的真假值来动态插入和移除元素,当然有if的情况下就必须有else
    v-show:根据表达式的真假值来隐藏和显示元素
    -->

<!--
    window.setInterval(function () {
        vm.ok = !vm.ok;
    },500)
    用来做时间间隔的
-->

v-model

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
   <script src="vue.js"></script>
    <style>
        ul li{
            list-style: none;
        }
    </style>
</head>
<body>
      <div id="app">
        <input v-model="msg">
          <p>{{msg}}</p>
          <input type="button" value="变化" @click="change">
    </div>
    <script>
        new Vue({
            el: "#app", //表示在当前这个元素内开始使用VUE
            data:{
              msg: "aaaaa"
            },
            methods: {
                change: function () {
                    this.msg = 8888888;
                }
            }

        })


    </script>

</body>
</html>


<!--
    v-model双向绑定还可以改变数据

-->

模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
   <script src="vue.js"></script>
</head>
<body>
      <div id="app">
        <p>{{msg}}</p>
        <p>{{80+2}}</p>
        <p>{{20>30}}</p>
        {{msg}}
          我是:<h1 v-text="msg">{{str}}</h1>
          你是:<h1 v-text="msg">2222222222222</h1>

          <h2 v-html="hd"></h2>
          <h2 v-html="str"></h2>
    </div>
    <script>
        new Vue({
            el: "#app", //表示在当前这个元素内开始使用VUE
            data:{
                msg: "我是老大",
                hd: "<input type='button' value='你是小三'>",
                str: "我要发财!"
            }
        })
    </script>
</body>
</html>

V-HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
   <script src="vue.js"></script>
</head>
<body>
      <div id="app">
        <p>{{msg}}</p>
        <p>{{80+2}}</p>
        <p>{{20>30}}</p>
        {{msg}}
          我是:<h1 v-text="msg">{{str}}</h1>
          你是:<h1 v-text="msg">2222222222222</h1>

          <h2 v-html="hd"></h2>
          <h2 v-html="str"></h2>
    </div>
    <script>
        new Vue({
            el: "#app", //表示在当前这个元素内开始使用VUE
            data:{
                msg: "我是老大",
                hd: "<input type='button' value='你是小三'>",
                str: "我要发财!"
            }
        })
    </script>
</body>
</html>

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-01-25 16:08  Dear坏小子  阅读(169)  评论(0编辑  收藏  举报