91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中的options選項怎么用

發布時間:2022-03-22 13:34:46 來源:億速云 閱讀:279 作者:iii 欄目:開發技術

這篇文章主要介紹了Vue中的options選項怎么用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Vue中的options選項怎么用文章都會有所收獲,下面我們一起來看看吧。

    Vue中的options選項

    options的五類屬性

    • 數據: data,props,propsdata,computed,methods,watch

    • DON: el,template,render,rebderError

    • 生命周期鉤子函數:beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,activated,deactivated,beforeDestroy,destroyed,erroCaptured。

    • 資源:directives,filters,components

    • 組合:parent,mxins,extends,provide,inject

    入門屬性

    • el(掛在點)

    new Vue({
        el:"#app"
        template:`<div>我是小明</div>`
    })
    可以使用$mount代替
    new Vue({
        template:`<div>我是小明</div>`
    }).$mount("#app")
    • data(內部數據)支持對象和函數,優先使用函數

      • 會被Vue監聽

      • 會被Vue實例代理

      • 每次data的讀寫都會被Vue監聽

      • Vue會在data變化是更新UI

    對象
    new Vue({
        template:"<div>{{n}}</div>",
        data:{
            n:0
        }
    }).$mount('#app')
    函數
    vue非完整版只支持函數
    new Vue({
        template:"<div>{{n}}</div>",
        data(){
            return {
                m:5
            }
        }
    })$mount('#app')
    • methods(方法)事件處理函數或者普通函數

    new Vue({
        template:"<div>{{n}}{{ add()}} <button @click="add">按鈕</button></div>",
        data:{
            n:0
        },
        methods:{
            add(){
        	console.log('我可以是事件處理函數也可以是普通函數')
    }
            }
    }).$mount('#app')
    • components(vue組件:注意大小寫)三種方式

    注冊全局組件
    Vue.component('Deon1', {
      template: "<h3>全局組件</h3>"
    })
    注冊局部組件
    const deon2 = {
      template: "<h3>局部組件 {{n}}</h3>",
       //在組建中data必須使用函數
      data() {
        return {
          n: "小明"
        }
      }
    }
    new Vue({
      components: {
        Deon2: deon2,
        Deon3:{
          template:"<h3>組件3</h4>"
      }
      },
      template: `
        <div>頁面
        <Deon1></Deon1>
        <Deon2></Deon2>
     	<Deon3></Deon3>
        </div> 
      `
    }).$mount('#app')

    使用vue文件添加組件

    deon4.vue文件

    <template>
      <div>我是deon.vue文件{{ name }}</div>
    </template>
    <script>
    export default {
      data() {
        name: "組件4";
      },
    };
    </script>
    <style scoped>
    div {
      border: 1px solid red;
    }
    </style>

    main.js

    import Deon4 from './deon4.vue'
    Vue.component('Deon1', {
      template: "<h3>全局組件</h3>"
    })
    const deon2 = {
      template: "<h3>局部組件 {{n}}</h3>",
      //在組建中data必須使用函數
      data() {
        return {
          n: "小明"
        }
      }
    }
    new Vue({
      components: {
        Deon2: deon2,
        Deon3: {
          template: "<h3>組件3</h4>"
        },
        Deon4
      },
      template: `
        <div>頁面
        <Deon1></Deon1>
        <Deon2></Deon2>
        <Deon3></Deon3>
        <Deon4><Deon4>
        </div> 
      `
    }).$mount('#app')
    • 常用的四個生命周鉤子函數

      • created: 實例出現在內存中

      • mounted:實例出現在頁面中觸發

      • updated:實例出現了變化觸發

      • destroyed:實例被銷毀了觸發

    new Vue({
        template:"<div>{{n}}</div>",
        data:{
            n:0
        },
         created() {
        console.log("實例出現在內存中了觸發");
      },
      mounted() {
        console.log("實例出現在頁面中觸發");
      },
      updated() {
        console.log("實例出現了變化觸發");
      },
      destroyed() {
        console.log("實例被銷毀了觸發");
      }
    }).$mount('#app')
    • props(外部數據)父組件想子組傳值

      • name="n"(傳入字符串)

      • :name="n"(傳入this.n數據)

      • :fn="add":(傳入this.add函數)

    new Vue({
      components: {
        Deon1: {
          props: ["m"],
          template: "<div>{{m}}</div>"
        }
      },
      template: `<div><Deon1 :m="m"></Deon1></div>`,
      data: {
        m: 666
      }
    }).$mount('#app')

    computed(計算屬性)

    • 不需要加括號

    • 他會根據依賴是否變化來緩存(如果依賴沒有變化,就不會重新結算)

    • 類型{ [key: string]: Function | { get: Function, set: Function } }

    用途

    • 被計算出來的屬性就是計算數據

    • 例子1 用戶名展示

    • 例子2 列表展示

    緩存

    • 如果依賴的屬性沒有變,化就不會重新計算

    • getter/setter默認不會做緩存,Vue做了特殊處理

    • 如何緩存?看示例 這是示例不是Vue的實現

    示例

    var vm = new Vue({
      data: { a: 1 },
      computed: {
        // 僅讀取
        aDouble: function () {
          return this.a * 2
        },
        // 讀取和設置
        aPlus: {
          get: function () {
            return this.a + 1
          },
          set: function (v) {
            this.a = v - 1
          }
        }
      }
    })
    vm.aPlus   // => 2
    vm.aPlus = 3
    vm.a       // => 2
    vm.aDouble // => 4

    watch(監聽)

    • data變化,就會執行函數

    • options.watch用法

    • this.$watch用法

    • deep:偵聽的對象的 property 改變時被調用,不論其被嵌套多深

    • immediate:偵聽開始之后被立即調用

    • 類型{ [key: string]: string | Function | Object | Array }

    用途

    • 當數據變化時,執行一個函數

    • 例子1撤銷

    • 例子2 模擬computed 這樣很傻,一般不這樣做

    何為變化

    • 看示例

     原本 let obj = {a:'a'} 現在 obj={a:'a'} 請問
     obj變了沒有. obj.a變了沒有
    簡單類型看至,復雜類型(對象)看地址
    這其實就是 ===的規則

    示例

    var vm = new Vue({
      data: {
        a: 1,
        b: 2,
        c: 3,
        d: 4,
        e: {
          f: {
            g: 5
          }
        }
      },
      watch: {
        a: function (val, oldVal) {
          console.log('new: %s, old: %s', val, oldVal)
        },
        // 方法名
        b: 'someMethod',
        // 該回調會在任何被偵聽的對象的 property 改變時被調用,不論其被嵌套多深
        c: {
          handler: function (val, oldVal) { /* ... */ },
          deep: true//監聽是否深入
        },
        // 該回調將會在偵聽開始之后被立即調用
        d: {
          handler: 'someMethod',
          immediate: true
        },
        // 你可以傳入回調數組,它們會被逐一調用
        e: [
          'handle1',
          function handle2 (val, oldVal) { /* ... */ },
          {
            handler: function handle3 (val, oldVal) { /* ... */ },
            /* ... */
          }
        ],
        // watch vm.e.f's value: {g: 5}
        'e.f': function (val, oldVal) { /* ... */ }
      }
    })
    vm.a = 2 // => new: 2, old: 1

    注意,不應該使用箭頭函數來定義 watcher 函數 (例如 searchQuery: newValue => this.updateAutocomplete(newValue))。理由是箭頭函數綁定了父級作用域的上下文,所以 this 將不會按照期望指向 Vue 實例,this.updateAutocomplete 將是 undefined

    deep: true是干什么的?

    • 如果object.a變了,請問object算不算變

    • 如果需要的答案是(也沒變啦),那么就用deep: true

    • 如果需要的答案是(沒有變),那么就用deep: false

    • deep的意思是監聽 object的時候是否往深了看

    computed和watch的區別

    computed計算屬性

    • computed是計算屬性,也就是依賴某個值或者props通過計算得來得數據;

    • computed的值是在getter執行之后進行緩存的,只有在它依賴的數據發生變化,會重新調用getter來計算;

    • 不支持異步,當computed內有異步操作時無效,無法監聽數據的變化

    • 調用時不需要加括號

    watch 監聽器

    • watch是監聽器,可以監聽某一個數據,然后執行相應的操作;

    • 不支持緩存,數據變直接會觸發相應的操作;

    • 監聽的函數接收兩個參數,第一個參數是最新的值;第二個參數是輸入之前的值;

    • 支持異步操作;

    • deep選項:偵聽的對象的 property 改變時被調用,不論其被嵌套多深

    • immediate:為true時偵聽開始之后被立即調用

    關于“Vue中的options選項怎么用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Vue中的options選項怎么用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    甘南县| 潍坊市| 阿合奇县| 当阳市| 博爱县| 龙山县| 仁化县| 饶阳县| 策勒县| 台前县| 孟村| 崇阳县| 富川| 法库县| 巴东县| 黄龙县| 夏河县| 延庆县| 托克托县| 余干县| 宁阳县| 社旗县| 锦州市| 唐海县| 五寨县| 曲麻莱县| 贵港市| 休宁县| 临汾市| 鹤壁市| 万全县| 当雄县| 庄河市| 乳山市| 岚皋县| 金湖县| 新龙县| 手游| 乡宁县| 连云港市| 正安县|