1. 程式人生 > 實用技巧 >Vue入門一:基礎概念

Vue入門一:基礎概念

vue入門學習筆記,vue.js下載 目錄:
  1. 掛載點、模板、例項之間的關係
  2. 資料、事件和方法
  3. 屬性繫結和雙向資料繫結
  4. 計算屬性和偵聽器
  5. v-if,v-show與v-for指令
  6. 案例to-do-list開發
  • 掛載點、模板、例項之間的關係

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport"
content="width=device-width,initial-scale=1.0"> <title>Vue Learning</title> <script src="./vue.js"></script </head> <body> <div id="app"> </div> <script> <!--例項--> new Vue({ el:"#app
",<!--掛載點--> template:"<h1>xxx{{msg}}</h1>",<!--模板--> data:{ msg:"hello world" } }) </script> </body> </html>
  • 資料、事件和方法

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta 
charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>Vue Learning</title> <script src="./vue.js"></script </head> <body> <div id="app"> <h1>hello {{msg}}</h1><!--插值表示式{{}}--> <h1 v-text="text_fasle"></h1><!-- v-text 不轉義--> <div v-html="html_true"></div><!-- v-html 轉義--> <div v-on:click="handleClick">{{content}}</div><!-- 點選事件 v-on:click--> <div @click="handleClick">{{content}}</div><!-- 點選事件 @click --> </div> <script> new Vue({ el:"#app", data:{<!--資料--> msg:"world", text_fasle:"<h1>False</h1>", html_true:"<h1>True</h1>", content:"hello" }, methods:{<!--方法定義--> handleClick:function(){ this.content="world" } } }) </script> </body> </html>
  • 屬性繫結和雙向資料繫結

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Vue Learning</title>
    <script src="./vue.js"></script
  </head>
  <body>
    <div id="app">
        <div v-bind:title="title">hello world</div><!-- 屬性繫結 v-bind:title -->
        <div :title="title">hello world</div><!-- 屬性繫結 :title -->
        
        <input :value="content"/><!-- 單向資料繫結 即上面的屬性繫結 -->
        <br>
        <input v-model="content"/><!-- 雙向資料繫結 v-model -->
        <div>{{content}}</div>
    </div>
    
    <script>
        new Vue({
            el:"#app",
            data:{
                title:"this is hello world",
                content:"this is content"
            }
        })
    </script>
  </body>
</html>
  • 計算屬性和偵聽器

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Vue Learning</title>
    <script src="./vue.js"></script
  </head>
  <body>
    <div id="app">        
        姓:<input v-model="firstName"/>
        名:<input v-model="lastName"/>
        <div>{{fullName}}</div>
        <div>{{count}}</div>
    </div>
    
    <script>
        new Vue({
            el:"#app",
            data:{
                firstName:"",
                lastName:"",
                count:0
            },
            computed:{<!-- 計算屬性 -->
                fullName:function(){
                    return this.firstName+this.lastName
                }
            },
            watch:{<!-- 偵聽器 -->
                fullName:function(){
                    this.count++
                }
            }
        })
    </script>
  </body>
</html>
  • v-if,v-show與v-for指令

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Vue Learning</title>
    <script src="./vue.js"></script
  </head>
  <body>
    <div id="app">
        <div v-if="showd">hello world</div><!-- v-if 判斷 值為false直接將元素從dom中刪除 -->
        <div v-show="showd">hello world</div><!-- v-show 判斷 值為false將元素從dom中隱藏 -->
        <button @click="handleClick">toggle</button>
        <ul>
            <li v-for="(item,index) of items" :key="index">{{item,index}}</li>
            <!-- v-for 迴圈顯示資料 其中:key提高渲染效率,唯一 -->
        </ul>
    </div>
    
    <script>
        new Vue({
            el:"#app",
            data:{
                showd:true,
                items:[1,2,3]
            },
            methods:{
                handleClick:function(){
                    this.showd=!this.showd
                }
            }
        })
    </script>
  </body>
</html>
  • 案例:to-do-list開發

輸入的內容可以在下面實時顯示:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Vue Learning</title>
    <script src="./vue.js"></script
  </head>
  <body>
    <div id="app">
        <div>
            <input v-model="inputValue"/>
            <button @click="handleClick">提交</button>
        </div>
        <ul>
            <li v-for="(item,index) of itemValues" :key="index">{{item}}</li>
        </ul>
    </div>
    
    <script>
        new Vue({
            el:"#app",
            data:{
                inputValue:"",
                itemValues:[]
            },
            methods:{
                handleClick:function(){
                    this.itemValues.push(this.inputValue)
                    this.inputValue=""
                }
            }
        })
    </script>
  </body>
</html>