Vue.js的HelloWorld

vue.js是什么

Vue.js是一套用于構(gòu)建用戶界面的漸進式框架。Vue.js通過簡單的API提供高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng)。

vue.js的特性

  • 確實輕量
  • 數(shù)據(jù)綁定
  • 指令
  • 插件化

vue.js的語法

  1. 插值
    文本插值是最基本的形式,用雙大括號{{ }}
  2. 指令
    指令是帶有v-前綴的特殊性,主要綁定表達式,也就是javascript表達式和過濾器。指令的作用是當表達式的值發(fā)生變化時,將這個變化也反映到DOM上。
  3. 常用指令有:
  • v-text和v-html
  • 監(jiān)聽事件指令 v-on
  • 屬性綁定指令 v-bind
  • 表單輸入綁定指令 v-model
  • 計算屬性
  • 條件渲染:v-if 和 v-show的區(qū)別
  1. HelloWorld 代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Hello World</title>
    <!-- 引入vue.js文件 -->
    <script type="text/javascript" src="vue.js"></script>
</head>
<body>
    <div id="app">
        <div v-for='item in fruit'>{{item}}</div>
        <!-- 隱藏時,v-if的那個div在dom中移除了,是真正的條件渲染,確保適當?shù)匿N毀和重建,
            直到條件第一次為真時才開始渲染,有高的切換開銷,運行條件很少改變的時候,用v-if比較好 -->
        <div v-if='showOrhide'>顯示或隱藏1</div>
        <!-- 隱藏時,v-show 的div則通過display:none來表達隱藏,不管初始條件是什么都會被渲染
        有更好的初始渲染開銷,適合需要頻繁切換 -->
        <div v-show='showOrhide2'>顯示或隱藏2</div>
        <h2>計算2個數(shù)之和</h2>
        第一個數(shù):<input v-model='oneNum'>
        第二個數(shù):<input v-model='twoNum'>
        <div>計算結(jié)果:{{result}}</div>
        <!-- 表單輸入綁定指令v-model,v-model指令在表單<input>及<textarea>元素上創(chuàng)建雙向數(shù)據(jù)綁定
            它會根據(jù)控件類型自動選取正確的方法來更新元素,負責監(jiān)聽用戶的輸入時間以更新數(shù)據(jù),并對一些
        極端場景進行一些特殊處理 -->
        <input v-model='content2'>
        <div>你輸入了:{{content2}}</div>
        <!-- v-bind的縮寫是: -->
        <div :title='title'>Hello vue!</div>
        <!-- 屬性綁定指令v-bind 用于響應(yīng)式地更新HTML屬性 -->
        <div v-bind:title='title'>Hello vue!</div>
        <!-- v-on可以簡寫為@ -->
        <div @click='clickMe'>點我</div>
        <!-- 指令v-on監(jiān)聽DOM事件,并在觸發(fā)時運行一些Javascript代碼 -->
        <div v-on:click='clickMe'>點我</div>
        <!-- 用指令v-html輸出標簽中的內(nèi)容 -->
        <div v-html='content'></div>
        <!-- 用指令v-text輸出結(jié)果為帶標簽的文本 -->
        <div v-text='content'></div> 
        <!-- <h1>你好,{{msg}}</h1> -->
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el:"#app", 
            // el:是element的縮寫,指要操作/綁定的元素
            data:{
                msg:'hello vue!',
                content:'<h1>我是標題</h1>',
                title:'這是標題',
                content2:'這是內(nèi)容',
                oneNum:'',
                twoNum:'',
                showOrhide:true,    //顯示
                showOrhide2:false,    //隱藏,下面覆蓋上面的
                fruit:["蘋果","桃子","西瓜"]
            },
            // data:寫需要操作改變的內(nèi)容
            //插值,文本插值是最基本的形式,用大括號{{}},如下代碼
            // template:'<h1>你好,{{msg}}</h1>'
            //自動根據(jù)el,template,data數(shù)據(jù)生成最終的效果。最后放在掛載點之中
            methods:{
                clickMe:function(){
                    alert("你點到我了")
                    this.content="呵呵呵"
                    //改變插值
                }
            },
            // 事件寫在Vue實例的methods對象里
            computed:{
                result:function(){
                    //第一次進入頁面是沒有輸入的,給個提示
                    if (this.oneNum==''||this.twoNum=='') {
                        return '你還沒有輸入'
                    }else{
                        //輸入了2個數(shù),就開始計算
                        return parseInt(this.oneNum) + parseInt(this.twoNum)
                    }
                }        
            }
            //computed 計算屬性,它的性能是比較高的,只有當他依賴的屬性發(fā)生變化時,
            //它才會重新請求計算,否則使用上一次的緩存值。所以如果一個龐大的數(shù)據(jù)項目,
            //需要有緩存的,就可以用這種方法??梢詼p少請求次數(shù),達到優(yōu)化。
        })
        
    </script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容