1. 程式人生 > >前端VUE框架

前端VUE框架

list splay oct rip height title sed .org pic

一、什麽是VUE?
  它是一個構建用戶界面的JAVASCRIPt框架
  vue不關心你頁面上的是什麽標簽,它操作的是變量或屬性

為什麽要使用VUE?

   在前後端分離的時候,後端只返回json數據,再沒有render方法,前端發送ajax請求(api=url)得到數據後,要在頁面渲染數據,如果你js+css實現就太麻煩了,這時候VUE就出現了。
二、怎麽樣使用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: "" } })

三、VUE指令

1. v-model

<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>

2. v-on

<style>
ul li{
list-style: none;
display: inline-block;
border: 1px solid cornflowerblue;
height:40px;
line-height: 40px;
width: 120px;
text-align: center;
}
</style>

<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>

3. v-bind

<style>
        .bk_1{
            background-color: cornflowerblue;
            width: 200px;
            height: 200px;
        }
        .bk_2{
            background-color: red;
            width: 200px;
             height: 200px;
        }
        .bk_3{

            border: 5px solid #000;
        }
</style>

<body>
    <div id="app">
        <a href="http://www.qq.com" v-bind:title="msg">騰訊</a>
        <div :class="bk"></div>
        <div :class="bk2"></div>

        <div :class="{bk_2:temp}">fdjjdjdkdkkeedd</div>
        <div :class="[bk2,bk3]">8888888888</div>
    </div>
    <script>
       var vm =  new Vue({
            el: "#app", //表示在當前這個元素內開始使用VUE
            data:{
                msg: "我想去騰訊公司上班",
                bk:"bk_1",
                bk2:"bk_2",
                bk3:"bk_3",
                temp: false
            }
        })
    </script>
</body>

4. v-for

<body>
      <div id="app">
        <ul>
            <li v-for="(item,index2) in arr">
                {{item}}: {{index2}}
            </li>
        </ul>

          <ul>
            <li v-for="(item,key,index) in obj">
                {{item}}: {{key}}:{{index}}
            </li>
        </ul>
          <ul>
            <li v-for="item in obj2">
                {{item.username}}
                {{item.age}}
                {{item.sex}}
            </li>
        </ul>

          <div v-for="i in 8">
              {{i}}
          </div>

          <input type="button" value="點我吧!" @click="show()">

          <a :href="url">我想去百度</a>

    </div>
    <script>
        new Vue({
            el: "#app", //表示在當前這個元素內開始使用VUE
            data:{
                arr: [11,22,3344,55],
                obj: {a:"張三",b:"李四",c:"王大拿",d:"謝大腳"},
                obj2:[
                    {username: "jason"},
                    {age: 20},
                    {sex: "male"}
                ],
                str: "我來了",
                url: "http://www.qq.com"
            },
            methods: {
                show: function () {
                    this.arr.pop();
                }
            }
        })



    </script>

</body>

5. v-if / show

<body>
      <div id="app">
       <p v-if="pick">我是劉德華</p>
       <p v-else>我是張學友</p>

       <p v-show="temp">我是趙本山</p>

       <p v-show="ok">你喜歡我嗎?</p>

    </div>
    <script>
        var vm = new Vue({
            el: "#app", //表示在當前這個元素內開始使用VUE
            data:{
                pick: false,
                temp: true,
                ok: true
            }
        })

         window.setInterval(function(){
             vm.ok = !vm.ok;
         },1000)

    </script>

</body>

6. v-html

<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>

7. 模板對象

<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>

8. 小綜合練習

技術分享圖片
<!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">
        <div>
            <input type="text" placeholder="姓名" v-model="username">
            <input type="text" placeholder="年齡" v-model="age">
            <input type="button" value="增加" @click="add">
        </div>
          <div>
                <table cellpadding="0" border="1">
                    <tr v-for="(item,index) in arr">
                        <td><input type="text" class="txt" v-model="item.username"> </td>
                        <td>{{item.age}}</td>
                        <td>{{index}}</td>
                        <td><input type="text" class="txt"></td>

                        <td><input type="button" value="刪除" @click="del(index)"></td>
                    </tr>
                </table>
          </div>
    </div>
    <script>
        new Vue({
            el: "#app", //表示在當前這個元素內開始使用VUE
            data:{
                username: "",
                age: "",
                arr: []
            },
            methods: {
                add: function () {
                    this.arr.push({username:this.username,age: this.age});
                    console.log(this.arr);
                },
                del: function (index) {
                    this.arr.splice(index,1);
                }
            }


        })


    </script>

</body>
</html>
View Code

9. 自定義指令:相關網址 https://cn.vuejs.org/v2/guide/custom-directive.html

技術分享圖片
<!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 type="text" v-focus>
    </div>
    <script>
        new Vue({
            el: "#app", //表示在當前這個元素內開始使用VUE
            data:{

            },
            directives: {
                focus: {    //指令的名字
                    //當被綁定的元素插入到 DOM 中時
                    inserted: function (tt) {
                        tt.focus();
                        tt.style.backgroundColor = "blue";
                        tt.style.color = "#fff"
                    }
                }
            }

        })


    </script>

</body>
</html>
View Code

前端VUE框架