vue.js入門(一)創建vue對象和常用指令及使用示例

Vue官網中文網:https://cn.vuejs.org/

一、創建一個Vue對象

<script type="text/javascript" src="../js/jquery-3.1.1.js"></script>
<script type="text/javascript" src="../js/vue.js"></script>

	<script>
		var vm = new Vue({
		  el: '#example',//定位操作對象,即需要渲染的div,裏面包括需要用vue渲染的控件
		  data: {//數據json或者json數組的嵌套格式
                	myData:[],
                	username:'',
                	age:'',
                	nowIndex:-100
		  },
		  methods:{//聲明在vue模型中使用的方法
                  	add:function(){
                    		this.myData.push({
                        	name:this.username,
                        	age:this.age
                   	 });

                    		this.username='';
                    		this.age='';
                    	},
                	deleteMsg:function(n){
                    		if(n==-2){
                        		this.myData=[];
                   	 	}else{
                        		this.myData.splice(n,1);
                    		}
                	}
         	 },
		  computed: {//創建數據監聽器
		    // a computed getter
		    reversedMessage: function () {//定義回調function,返回基礎數據的操作結果
		      // `this` points to the vm instance
		      return this.message.split('').reverse().join('')
		    	}

			},
		    watch:{//用於監聽message值得變化
		    	'message':function(val,oldVal){
		    	console.log(val,oldVal);
		    }

		  }
		});
	</script>

二、Vue常用指令

1、v-if指令

            <h1 v-if="yes">Yes!</h1>
            <h1 v-if="no">No!</h1>
            <h1 v-if="age >= 25">Age: {{ age }}</h1>
            <h1 v-if="name.indexOf('jack') >= 0">Name: {{ name }}</h1>

2、v-show指令

            <h1 v-show="yes">Yes!</h1>
            <h1 v-show="no">No!</h1>
            <h1 v-show="age >= 25">Age: {{ age }}</h1>
            <h1 v-show="name.indexOf('jack') >= 0">Name: {{ name }}</h1>

3、v-else指令

            <h1 v-show="yes">Yes!</h1>
            <h1 v-show="no">No!</h1>
            <h1 v-show="age >= 25">Age: {{ age }}</h1>
            <h1 v-else="sex='femail'">sex:{{sex}}</h1>

4、v-for指令

        var vm = new Vue({
            el: '#app',
            data: {
                people: [{
                    name: 'Jack',
                    age: 30,
                    sex: 'Male'
                }, {
                    name: 'Bill',
                    age: 26,
                    sex: 'Male'
                }, {
                    name: 'Tracy',
                    age: 22,
                    sex: 'Female'
                }, {
                    name: 'Chris',
                    age: 36,
                    sex: 'Male'
                }]
            }
        })

            <table>
                <thead>
                    <tr>
                        <th>Name</th>
                        <th>Age</th>
                        <th>Sex</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="person in people">
                        <td>{{ person.name  }}</td>
                        <td>{{ person.age  }}</td>
                        <td>{{ person.sex  }}</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </body>

5、v-bind指令

<body>

<!--
	v-bind指令可以在其名稱後面帶一個參數,中間放一個冒號隔開,這個參數通常是HTML元素的特性(attribute),例如:v-bind:class

	v-bind:argument="expression"
	下面這段代碼構建了一個簡單的分頁條,v-bind指令作用於元素的class特性上。
 -->
 <div id="app">
            <ul class="pagination">
                <li v-for="n in pageCount">
                    <a href="javascripit:void(0)" v-bind:class="activeNumber === n + 1 ? 'active' : ''">{{ n + 1 }}</a>
                </li>
            </ul>
        </div>
 </body>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                activeNumber: 1,
                pageCount: 10
            }
        })
    </script>

6、v-on指令(處理事件),並且v-on可以使用@符號替代

<body>
	<!--
	v-on指令用於給監聽DOM事件,它的用語法和v-bind是類似的,例如監聽<a>元素的點擊事件:

	<a v-on:click="doSomething">
	有兩種形式調用方法:綁定一個方法(讓事件指向方法的引用),或者使用內聯語句。
	Greet按鈕將它的單擊事件直接綁定到greet()方法,而Hi按鈕則是調用say()方法。
	-->
  <div id="app">
            <p><input type="text" v-model="message"></p>
            <p>
                <!--click事件直接綁定一個方法-->
                <button v-on:click="greet">Greet</button>
            </p>
            <p>
                <!--click事件使用內聯語句-->
                <button @click="say('Hi')">Hi</button>
            </p>
        </div>
    </body>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                message: 'Hello, Vue.js!'
            },
            // 在 `methods` 對象中定義方法
            methods: {
                greet: function() {
                    // // 方法內 `this` 指向 vm
                    alert(this.message)
                },
                say: function(msg) {
                    alert(msg)
                }
            }
        })
    </script>

三、使用v-model實現數據雙向綁定

<div id="example">
    <p>顯示文本框的輸入值:{{ message }}</p>
    <input type="text" id="test1" v-model="message"/><br>
    <input type="text" id="test2" v-model="message"/>
	<script>
        //model創建
		var exampleData = {
            message: $("#test1").value
        }

        // 創建一個 Vue 實例或 "ViewModel"
        // 它連接 View 與 Model
        var vm=new Vue({
            el: '#example',
            data: exampleData
        })


	</script>
以v-model實現雙向綁定來理解vue.js的mv-vm框架模式:model即數據,V即數據顯示,控件的值,vm即Vue對象。

發佈了37 篇原創文章 · 獲贊 18 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章