1. 程式人生 > >Vue.js系列之一初識Vue

Vue.js系列之一初識Vue

method ntp 前端 spl 也會 date() 代碼 剖析 script

在看vue.js之前,可以先看這兩篇文章,對於為什麽要使用vue會有一定幫助

1、 Vue.js !important

2、界面之下:還原真實的MV*模式 !important

3、web前端優化之reflow(減少頁面的回流)

4、深度剖析:如何實現一個 Virtual DOM 算法

本系列文章是基於官方文檔,整理的,旨在讓新手快速上手.學習vue.js需要一定基礎.

一、聲明式渲染

1、實現Hello World的功能

還是熟悉的Hello World,下面用Vue.js的聲明式渲染來實現

<body>
<div id="tDiv">
    {{message}}
</div> </body> <script type="text/javascript"> var currentPage=new Vue({ el:"#tDiv", //指定綁定的目標dom元素的Id //綁定數據源 data:{ message:"hello World By Vue!" } }); </script>

技術分享

此時Vue已經將Dom和數據進行了綁定,所有的元素會隨著數據的改變而改變,打開當前頁面的控制臺,在控制臺中改變數據,如下圖:

技術分享

2、通過給dom元素的添加vue指令屬性將dom元素的屬性和數據進行綁定

下面通過vue指令將數據和dom元素的屬性綁定到一起,代碼如下:

<body>
<div id="tDiv" v-bind:title="message">
    鼠標懸停幾秒鐘查看此處動態綁定的提示信息!
</div>
</body>
<script>
    var currentPage=new Vue({
        el:"#tDiv", //指定綁定的目標dom元素的Id

//綁定數據源
        data:{
            message:
頁面加載於 + new Date().toLocaleString() } }); //鼠標懸浮效果 $(document).ready(function () { var curr=$("#tDiv"); curr.hover(function () { alert(curr.attr("title")); }) }) </script>

技術分享

同樣的,通過控制臺修改數據的時候,dom元素也會發生相應的改變.自行實現

總結:一中的例子展示了Vue.Js將Dom文本綁定到數據的功能.

二、條件與循環(if語句和for語句在Vue中的使用方式)

1、使用vue的類if語句功能

通過v-if條件指令控制元素的顯示隱藏,代碼如下:

<body>
<div id="tDiv" v-if="seen">
    顯示
</div>
</body>
<script type="text/javascript">
    var currentPage=new Vue({
        el:"#tDiv", //指定綁定的目標dom元素的Id

        //綁定數據源
        data:{
            message:頁面加載於  + new Date().toLocaleString(),
            seen:true
        }
    });
</script>

技術分享

同樣在控制臺中修改對應的數據,如下圖:

技術分享

技術分享

結論:上面的例子展示了Vue.Js不僅能將Dom文本綁定到數據,還能將Dom結構綁定到數據

2、使用vue的類for功能

通過v-for指令來遍歷數據集合進行展示,代碼如下:

<body>
<div id="tDiv">
    <ul v-for="model in list">
        <li>{{model.name}}</li>
    </ul>
</div>
</body>
<script>
    var currentPage=new Vue({
        el:"#tDiv", //指定綁定的目標dom元素的Id
        //綁定數據源
        data:{
                list:[
                    {id:1,name:"張三"},
                    {id:2,name:"李四"},
                    {id:3,name:"王五"}
                ]
            }
    });
</script>

技術分享

在控制臺中給list追加數據,如下圖:

技術分享

會發現ul列表中會多出一條數據,如下圖:

技術分享

三、事件監聽

Vue提供了監聽Js原生事件的機制,代碼如下:

<body>
<div id="tDiv">
    <p>{{message}}</p>
    <input type="button" v-on:click="resetPContent" value="點我有驚喜">
</div>
</body>
<script>
    var currentPage=new Vue({
        el:"#tDiv", //指定綁定的目標dom元素的Id
        //綁定數據源
        data:{
            message:"Hello World By Vue"
        },
        methods:{
            resetPContent:function(){
                this.message=this.message.split(‘‘).reverse().join(‘‘); //reverse顛倒數據元素的順序
            }
        }
    });
</script>

技術分享

點擊之後,如下圖:

技術分享

註意在resetPContent方法中,更改了數據,相當於改變了應用程序的狀態,但是註意這裏沒有任何操作dom元素的代碼,因為所有的dom操作都由vue來進行,這裏我們主需要關心數據源.更新dom的操作都由vue來進行.

四、表單輸入和應用狀態之間的雙向綁定

通過v-model指令來實現表單輸入和應用狀態之間的雙向綁定,代碼如下:

<body>
<div id="tDiv">
   <p>{{message}}</p>
    <input type="text" v-model="message">
</div>
</body>
<script>
    var currentPage=new Vue({
        el:"#tDiv", //指定綁定的目標dom元素的Id
        //綁定數據源
        data:{
            message:"Hello World By Vue"
        }
    });
</script>

技術分享

Vue.js系列之一初識Vue