1. 程式人生 > 實用技巧 >關於閉包的一道題目解析

關於閉包的一道題目解析

vue基礎使用 步驟

1. vue的使用要從建立Vue物件開始
var vm = new Vue();

2. 建立vue物件的時候,需要傳遞引數,是json物件,json物件物件必須至少有兩個屬性成員
var vm = new Vue({
el:"#app",
data: {
資料變數:"變數值",
資料變數:"變數值",
資料變數:"變數值",
},
});

el:設定vue可以操作的html內容範圍,值一般就是css的id選擇器。
data: 儲存vue.js中要顯示到html頁面的資料。

3. vue.js要控制器的內容範圍,必須先通過id來設定。
<div id="app">
<h1>{{message}}</h1>
<p>{{message}}</p>
</div>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 1. 先引入vue核心檔案 -->
    <script src="vue.js"></script>
</head>
<body>
<!-- 3. 在el屬性物件的標籤中,填寫正確的vue語法展示或者控制資料 -->
<div id="app">
{{message}} </div> {{message}} </body> <script> // vue的基本使用三個注意事項: // 1. 一個html頁面中可以存在多個vue例項物件,但是例項物件的變數名強烈建議唯一,而且每一個vue物件負責一個特效功能 // 2. js中所有的變數和語法都是區分大小寫的,new Vue() // 3. 建議例項化vue物件的程式碼寫在body的最後面。免得出現html元素無法獲取的錯誤出現 window.onload = function(){ // 2. 對vue的核心物件vm進行例項化
var vm = new Vue({ el: "#app", // 接下來vue要操作的元素的選擇符 element的縮寫,表示元素 data:{ // 儲存一些前端使用的資料 message: "hello world", }, }); } </script> </html>

vue的框架思想(mvvm)

MVVM 是Model-View-ViewModel 的縮寫,它是一種基於前端開發的架構模式。

Model 指代的就是vue物件的data屬性裡面的資料。這裡的資料要顯示到頁面中。

View 指代的就是vue中資料要顯示的HTML頁面,在vue中,也稱之為“檢視模板” 。

ViewModel 指代的是vue.js中我們編寫程式碼時的vm物件了,它是vue.js的核心,負責連線 View 和 Model,保證檢視和資料的一致性,所以前面程式碼中,data裡面的資料被顯示中p標籤中就是vm物件自動完成的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 1. 先引入vue核心檔案 -->
    <script src="vue.js"></script>
</head>
<body>
<!-- V,View,檢視模板 -->
<div id="app">
    <input v-model="message"><br>
    {{message}}
</div>
<script>
    // new Vue,VM物件,負責時刻保證檢視模板中的資料和data裡面的資料一致!
    var vm = new Vue({
        el:"#app",
        data:{ // M,Model,模型裡面的所有資料,將來都會作為vm物件的屬性存在
            message: "一篇文章",
            num: 16,
        }
    })
</script>
</body>
</html>

在瀏覽器中可以在 console.log通過 vm物件可以直接訪問el和data屬性,甚至可以訪問data裡面的資料

console.log(vm.$el)        # #app  vm物件可以控制的範圍
console.log(vm.$data);     #    vm物件要顯示到頁面中的資料
console.log(vm.$data.message);  # 訪問data裡面的資料
console.log(vm.message);   # 這個 message就是data裡面宣告的資料,也可以使用 vm.變數名顯示其他資料,message只是舉例.

1. 如果要輸出data裡面的資料作為普通標籤的內容,需要使用{{ }}
用法:
vue物件的data屬性:
data:{
name:"小明",
}
標籤元素:
<h1>{{ name }}</h1>
2. 如果要輸出data裡面的資料作為表單元素的值,需要使用vue.js提供的元素屬性v-model
用法:
vue物件的data屬性:
data:{
name:"小明",
}
表單元素:
<input v-model="name">

使用v-model把data裡面的資料顯示到表單元素以後,一旦使用者修改表單元素的值,則data裡面對應資料的值也會隨之發生改變,甚至,頁面中凡是使用了這個資料都會發生變化。

顯示資料

1. 在雙標籤中顯示純文字資料一般使用 {{}} 類完成資料的顯示,雙括號中還可以支援 js 表示式和符合 結束語法的程式碼,如函式的呼叫.

2. 在表單輸入框中顯示資料要使用 v-model 類完成資料的顯示

3. 如果雙標籤的內容要顯示資料包含html低嗎,則使用 v-html來完成.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/vue.min.js"></script>
    <script>
      window.onload = function(){
        var vm = new Vue({
          el:"#app",
          data:{
            str1: "hello",
            num: 20,
            price: 7.1,
            url1: "http://www.baidu.com",
            url2: "http://www.taobao.com"
          }
        })        
        }
    </script>
</head>
<body>
    <p>{{ str1 }}</p>
    <p>{{ str1.split("").reverse().join("") }}</p>
    <p>num和num2中比較大的數是:{{ num>num2? num:num2 }}</p>
    <input type="text" v-model="name">
    <p>{{(price+0.8).toFixed(2)}}</p>
</body>
</html>

雙花括號僅用輸出文字內容,如果要輸出 html 程式碼,則不能使用這個,要使用 v-html 來輸出, v-htnl 必須在 html 標籤裡面作出屬性寫出來.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/vue.js"></script>
</head>
<body>
    <div class="app">
        <h1>{{title}}</h1>
        <h3>{{url1}}</h3>
        {{img}}<br>
        <span v-html="img"></span>
    </div>
    <script>
        let vm = new Vue({
            el:".app",
            data:{
                title:"我的vue",
                url1:"我的收穫地址",
                img:'<img src="images/shendan.png">',
            }
        })
    </script>
</body>
</html>

1. 可以在普通標籤中中使用 {{}} 或者 v-html 來輸出 data裡面的資料

  <h1>{{message}}<h1>

2. 可以在表單中使用 v-model 屬性來輸出 data 裡面的資料,同時還可以修改 打啊裡面的資料

  <input type+'text' v-model='username'?

在輸入內容到普通標籤的使用{{}}
v-model 或者 v-html 等 vue的屬性,或者({{}} 都支援jd程式碼.



<h1>{{str1.split("").reverse().join("")}}</h1>
    <!-- 3.2 支援js的運算子-->
    <h1>{{num1+3}}</h1>

    <!-- 3.3 js還有一種運算子,三元運算子,類似於python裡面的三元表示式
        三元運算子的語法:
         判斷條件 ? 條件為true : 條件為false的結果

        python 三元表示式[三目運算子]的語法:
        a if 條件 else b
     -->
    <h1>num1和num2之間進行比較,最大值:{{ num2>num1?num2:num1 }}</h1>

栗子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue的快速使用</title>
    <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
    <p>{{url}}</p>
    <div>{{text}}</div>
    <div v-html="text"></div>
    <input v-model="url">
    <div>num是{{num%2==0?'偶數':'奇數'}}</div>
    <div>num的下一個數字:{{num-0+1}}</div>
    <input type="text" v-model="num">
    <div>{{message.split("").reverse().join("")}}</div>
    <input type="text" v-model="message">
</div>
    <script>
    var vm = new Vue({
        el:"#app", // 設定vue物件控制的標籤範圍
        data:{     // vue要操作的資料
            url:"http://www.luffycity.com",
            text:"<h1>大標題</h1>",
            num: 100,
            message:"abcdef",
        },
        
    })
    </script>
</body>
</html>