vue_day01

Vue_day01

1.  理解 VUE

1.1 で何VUE

(1)Vueが緩やかビルドインターフェースフレームJSあります

(2)のみビュー層、ボトムアップ設計インクリメンタル開発に関する。

(3)Vueの目標は、結合および成分の組み合わせを表示するAPIデータに応じてできるだけ単純にすることによって達成されます。 - 結合双方向のデータ

言う:VUEは、インタフェースフレームワークのJSを行うことです(jqueryの/ easyui)

1.2vue どのように使用します

プロジェクトはVUEのインストールNPM実行されている(1)

(2)vue.jsページの紹介

ます。<script type = "text / javascriptの" SRC = "node_modules / VUE / DIST / vue.js"> </ SCRIPT>

(3)試験コード

<身体>

    <DIV ID = "アプリ">

        {{名前}}

    </ div>

<スクリプト>

    新しいビュー({

       エル: "#アプリ"、

        データ:{

           名前: "XXXX"

        }

    });

</ SCRIPT>

1.3エルマウント

エル:に対応するオブジェクトの上に、マウントVUEラベルをマウント

エル方法:

(1)識別方法マウント

<身体>

    <DIV ID = "アプリ">

        {{名前}}

    </ div>

<スクリプト>

    新しいビュー({

       エル: "#アプリ"、

        データ:{

           名前: "XXXX"

        }

    });

</ SCRIPT>

(2)クラスローディング方法

<身体>

    <のdivクラス= "アプリ">

        {{名前}}

    </ div>

<スクリプト>

    新しいビュー({

       エル: "アプリ。"、

        データ:{

           名前: "XXXX"

        }

    });

</ SCRIPT>

1.4データデータ

データ:文字列オブジェクトを置くと配列はOKです

データ:{ "ショー":真、    "隠された":偽、    "スコア":66 }
    


 

1.5メソッドのメソッド

メソッドのメソッド:

方法:{ changeData (){ コンソールの.log this.msg } }
    
        
    

1.6 VUE ライフサイクル

 

 

 

1.7 結合双方向データ

<body>
<div id="app">
    <input type="text" v-model="msg" v-on:change="changeData"/>
    <div>
        {{msg}}
    </div>
</div>
</body>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            name: "信息",
            msg: "test"
        },
        methods:{
            changeData(){
                console.log(this.msg);
            }
        }
    });
</script>

 

2.vue指令

2.1 v-for

循环

<body>
<div id="app">
    循环数组
    <ul>
        <li v-for="hobby in hobbys">
            {{hobby}}
        </li>
    </ul>
    <hr>
    循环对象
    <ul>
        <li v-for="u in user">
            {{u}}
        </li>
    </ul>
    <hr/>
    带索引循环数组
    <ul>
        <li v-for="(hobby,index) in hobbys">
            {{hobby}}==={{index}}
        </li>
    </ul>
    <hr/>
    循环对象
    <ul>
        <li v-for="(value, key, index) in user">
            {{key}} == {{value}} ---> {{index}}
        </li>
    </ul>

    <hr/>
    循环json数据
    <table>
        <thead>
            <tr>id</tr>
            <tr>name</tr>
            <tr>age</tr>
            <tr>sex</tr>
        </thead>
        <tbody>
        <tr v-for="student in students">
            <td>{{student.id}}</td>
            <td>{{student.name}}</td>
            <td>{{student.age}}</td>
            <td>{{student.sex}}</td>
        </tr>
        </tbody>
    </table>
</div>
</body>
<script>
    var app = new Vue({
        el:"#app",
        data: {
            user: {
                name: "德莱文",
                age: 18,
                sex: ""
            },
            hobbys: ["打篮球", "踢足球", "打羽毛球"],
            students: [
                {id: 1, name: "刘备", age: 29, sex: ""},
                {id: 2, name: "貂蝉", age: 30, sex: ""},
                {id: 3, name: "吕布", age: 31, sex: ""}
            ]
        }
    });
</script>

 

2.2 v-bind

绑定的标签里面属性的值

<body>
<div id="app">
    <img width="100" src="img/11.jpg"/>
    <img width="100" v-bind:src="imgSrc">
    <img width="100" :src="imgSrc"/>
    <input type="text" name="username"/>
    <input v-bind="props"/>
</div>
</body>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            imgSrc:"img/11.jpg",
            props:{
                type:"text",
                name: "username"
            }
        }
    });
</script>

2.3 v-show

控制display这个属性

<body>
<div id="app">
    <div v-show="show">show show show ...</div>
    <div v-show="hidden">hidden hidden hidden...</div>
    <div v-show="score > 80">if if if</div>
</div>
</body>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            "show":true,
            "hidden":false,
            "score":66
            }
    });
</script>

2.4 v-if/else

如果不成立 ,在页面无法看到

<body>
<div id="app">
    <div v-if="age , 18">你还年轻,还可以玩一下</div>
    <div v-else-if="age > 20  && age < 60">小伙子,我这里有一本java的秘籍要不要看一看?</div>
    <div v-else>
        可以退休啦~~
    </div>
</div>
</body>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            "show": true,
            "hidden": false,
            "score": 66
        }
    });
</script>

 

2.5 v-model

控制标签里面value 完成双向绑定
<body>
<div id="app">
    绑定普通的字符串值
    <input v-model="inputValue" />
    {{inputValue}}

    <h1>绑定到type=checkboxinput表单元素</h1>
    打篮球:<input type="checkbox" v-model="checkboxValue" value="打篮球"><br/>
    踢足球:<input type="checkbox" v-model="checkboxValue" value="踢足球"><br/>
    data中的值:{{checkboxValue}}

    <h1>绑定到type=radioinput表单元素</h1>
    打篮球:<input type="radio" v-model="radioValue" value="打篮球"><br/>
    踢足球:<input type="radio" v-model="radioValue" value="踢足球"><br/>
    data中的值:{{radioValue}}

    <h1>绑定到文本域的值</h1>
    <textarea v-model="textAreaValue"></textarea>
    data中的值:{{textAreaValue}}

    下拉的值
    <select v-model="skills">
        <option value="rap">rap</option>
        <option value=""></option>
        <option value=""></option>
    </select>
    {{skills}}>
</div>
</body>
<script>
    var app = new Vue({
        el: "#app",
        data: {
            inputValue:"输入的text",
            checkboxValue:["踢足球"],
            radioValue:"打篮球",
            textAreaValue: "溜了溜了...",
            sills:""

        }
    });
</script>

おすすめ

転載: www.cnblogs.com/dyier/p/12113002.html