欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳細(xì)聊聊Vue中的options選項(xiàng)

 更新時(shí)間:2022年03月22日 11:15:39   作者:嗨慢走  
options是new Vue的參數(shù),我們一般稱之為選項(xiàng)或者構(gòu)造選項(xiàng),下面這篇文章主要給大家介紹了關(guān)于Vue中options選項(xiàng)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

Vue中的options選項(xiàng)

options的五類屬性

  • 數(shù)據(jù): data,props,propsdata,computed,methods,watch
  • DON: el,template,render,rebderError
  • 生命周期鉤子函數(shù):beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,activated,deactivated,beforeDestroy,destroyed,erroCaptured。
  • 資源:directives,filters,components
  • 組合:parent,mxins,extends,provide,inject

入門屬性

  • el(掛在點(diǎn))
new Vue({
    el:"#app"
    template:`<div>我是小明</div>`
})
可以使用$mount代替
new Vue({
    template:`<div>我是小明</div>`
}).$mount("#app")
  • data(內(nèi)部數(shù)據(jù))支持對(duì)象和函數(shù),優(yōu)先使用函數(shù)
    • 會(huì)被Vue監(jiān)聽
    • 會(huì)被Vue實(shí)例代理
    • 每次data的讀寫都會(huì)被Vue監(jiān)聽
    • Vue會(huì)在data變化是更新UI
對(duì)象
new Vue({
    template:"<div>{{n}}</div>",
    data:{
        n:0
    }
}).$mount('#app')
函數(shù)
vue非完整版只支持函數(shù)
new Vue({
    template:"<div>{{n}}</div>",
    data(){
        return {
            m:5
        }
    }
})$mount('#app')
  • methods(方法)事件處理函數(shù)或者普通函數(shù)
new Vue({
    template:"<div>{{n}}{{ add()}} <button @click="add">按鈕</button></div>",
    data:{
        n:0
    },
    methods:{
        add(){
    	console.log('我可以是事件處理函數(shù)也可以是普通函數(shù)')
}
        }
}).$mount('#app')
  • components(vue組件:注意大小寫)三種方式
注冊(cè)全局組件
Vue.component('Deon1', {
  template: "<h2>全局組件</h2>"
})
注冊(cè)局部組件
const deon2 = {
  template: "<h2>局部組件 {{n}}</h2>",
   //在組建中data必須使用函數(shù)
  data() {
    return {
      n: "小明"
    }
  }
}
new Vue({
  components: {
    Deon2: deon2,
    Deon3:{
      template:"<h2>組件3</h3>"
  }
  },
  template: `
    <div>頁(yè)面
    <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: "<h2>全局組件</h2>"
})
const deon2 = {
  template: "<h2>局部組件 {{n}}</h2>",
  //在組建中data必須使用函數(shù)
  data() {
    return {
      n: "小明"
    }
  }
}
new Vue({
  components: {
    Deon2: deon2,
    Deon3: {
      template: "<h2>組件3</h3>"
    },
    Deon4
  },
  template: `
    <div>頁(yè)面
    <Deon1></Deon1>
    <Deon2></Deon2>
    <Deon3></Deon3>
    <Deon4><Deon4>
    </div> 
  `
}).$mount('#app')
  • 常用的四個(gè)生命周鉤子函數(shù)
    • created: 實(shí)例出現(xiàn)在內(nèi)存中
    • mounted:實(shí)例出現(xiàn)在頁(yè)面中觸發(fā)
    • updated:實(shí)例出現(xiàn)了變化觸發(fā)
    • destroyed:實(shí)例被銷毀了觸發(fā)
new Vue({
    template:"<div>{{n}}</div>",
    data:{
        n:0
    },
     created() {
    console.log("實(shí)例出現(xiàn)在內(nèi)存中了觸發(fā)");
  },
  mounted() {
    console.log("實(shí)例出現(xiàn)在頁(yè)面中觸發(fā)");
  },
  updated() {
    console.log("實(shí)例出現(xiàn)了變化觸發(fā)");
  },
  destroyed() {
    console.log("實(shí)例被銷毀了觸發(fā)");
  }
}).$mount('#app')
  • props(外部數(shù)據(jù))父組件想子組傳值
    • name="n"(傳入字符串)
    • :name="n"(傳入this.n數(shù)據(jù))
    • :fn="add":(傳入this.add函數(shù))
new Vue({
  components: {
    Deon1: {
      props: ["m"],
      template: "<div>{{m}}</div>"
    }
  },
  template: `<div><Deon1 :m="m"></Deon1></div>`,
  data: {
    m: 666
  }
}).$mount('#app')

computed(計(jì)算屬性)

  • 不需要加括號(hào)
  • 他會(huì)根據(jù)依賴是否變化來緩存(如果依賴沒有變化,就不會(huì)重新結(jié)算)
  • 類型{ [key: string]: Function | { get: Function, set: Function } }

用途

緩存

  • 如果依賴的屬性沒有變,化就不會(huì)重新計(jì)算
  • getter/setter默認(rèn)不會(huì)做緩存,Vue做了特殊處理
  • 如何緩存?看示例 這是示例不是Vue的實(shí)現(xiàn)

示例

var vm = new Vue({
  data: { a: 1 },
  computed: {
    // 僅讀取
    aDouble: function () {
      return this.a * 2
    },
    // 讀取和設(shè)置
    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(監(jiān)聽)

  • data變化,就會(huì)執(zhí)行函數(shù)
  • options.watch用法
  • this.$watch用法
  • deep:偵聽的對(duì)象的 property 改變時(shí)被調(diào)用,不論其被嵌套多深
  • immediate:偵聽開始之后被立即調(diào)用
  • 類型{ [key: string]: string | Function | Object | Array }

用途

  • 當(dāng)數(shù)據(jù)變化時(shí),執(zhí)行一個(gè)函數(shù)
  • 例子1撤銷
  • 例子2 模擬computed 這樣很傻,一般不這樣做

何為變化

 原本 let obj = {a:'a'} 現(xiàn)在 obj={a:'a'} 請(qǐng)問
 obj變了沒有. obj.a變了沒有
簡(jiǎn)單類型看至,復(fù)雜類型(對(duì)象)看地址
這其實(shí)就是 ===的規(guī)則

示例

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',
    // 該回調(diào)會(huì)在任何被偵聽的對(duì)象的 property 改變時(shí)被調(diào)用,不論其被嵌套多深
    c: {
      handler: function (val, oldVal) { /* ... */ },
      deep: true//監(jiān)聽是否深入
    },
    // 該回調(diào)將會(huì)在偵聽開始之后被立即調(diào)用
    d: {
      handler: 'someMethod',
      immediate: true
    },
    // 你可以傳入回調(diào)數(shù)組,它們會(huì)被逐一調(diào)用
    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

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

deep: true是干什么的?

  • 如果object.a變了,請(qǐng)問object算不算變

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

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

  • deep的意思是監(jiān)聽 object的時(shí)候是否往深了看

computed和watch的區(qū)別

computed計(jì)算屬性

  • computed是計(jì)算屬性,也就是依賴某個(gè)值或者props通過計(jì)算得來得數(shù)據(jù);
  • computed的值是在getter執(zhí)行之后進(jìn)行緩存的,只有在它依賴的數(shù)據(jù)發(fā)生變化,會(huì)重新調(diào)用getter來計(jì)算;
  • 不支持異步,當(dāng)computed內(nèi)有異步操作時(shí)無效,無法監(jiān)聽數(shù)據(jù)的變化
  • 調(diào)用時(shí)不需要加括號(hào)

watch 監(jiān)聽器

  • watch是監(jiān)聽器,可以監(jiān)聽某一個(gè)數(shù)據(jù),然后執(zhí)行相應(yīng)的操作;
  • 不支持緩存,數(shù)據(jù)變直接會(huì)觸發(fā)相應(yīng)的操作;
  • 監(jiān)聽的函數(shù)接收兩個(gè)參數(shù),第一個(gè)參數(shù)是最新的值;第二個(gè)參數(shù)是輸入之前的值;
  • 支持異步操作;
  • deep選項(xiàng):偵聽的對(duì)象的 property 改變時(shí)被調(diào)用,不論其被嵌套多深
  • immediate:為true時(shí)偵聽開始之后被立即調(diào)用

總結(jié)

到此這篇關(guān)于Vue中options選項(xiàng)的文章就介紹到這了,更多相關(guān)Vue的options選項(xiàng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3中使用echarts的簡(jiǎn)單七個(gè)步驟(易懂,附緊急避坑)

    Vue3中使用echarts的簡(jiǎn)單七個(gè)步驟(易懂,附緊急避坑)

    近期在做一個(gè)vue3的項(xiàng)目,里面有個(gè)圖表需求,因公司之前使用第三方封裝的圖表缺少文檔,就去看了echars的官網(wǎng)文檔,引入原生echars來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Vue3中使用echarts的簡(jiǎn)單七個(gè)步驟,需要的朋友可以參考下
    2023-01-01
  • Vue.js實(shí)現(xiàn)圖片的隨意拖動(dòng)方法

    Vue.js實(shí)現(xiàn)圖片的隨意拖動(dòng)方法

    下面小編就為大家分享一篇Vue.js實(shí)現(xiàn)圖片的隨意拖動(dòng)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vuex中g(shù)etters的基本用法解讀

    vuex中g(shù)etters的基本用法解讀

    這篇文章主要介紹了vuex中g(shù)etters的基本用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue自定義元素身上的右鍵事件問題

    Vue自定義元素身上的右鍵事件問題

    這篇文章主要介紹了Vue自定義元素身上的右鍵事件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue.js實(shí)現(xiàn)可配置的登錄表單代碼詳解

    Vue.js實(shí)現(xiàn)可配置的登錄表單代碼詳解

    這篇文章主要介紹了Vue.js實(shí)現(xiàn)可配置的登錄表單實(shí)例代碼詳解,文中給大家補(bǔ)充介紹了vue.js 全選與取消全選的實(shí)例代碼,需要的朋友可以參考下
    2018-03-03
  • vue?使用el-table循環(huán)生成表格的過程

    vue?使用el-table循環(huán)生成表格的過程

    這篇文章主要介紹了vue?使用el-table循環(huán)生成表格的過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3項(xiàng)目中引用TS語法的實(shí)例講解

    Vue3項(xiàng)目中引用TS語法的實(shí)例講解

    這篇文章主要介紹了Vue3項(xiàng)目中引用TS語法的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue實(shí)現(xiàn)拖拽與排序功能的示例代碼

    vue實(shí)現(xiàn)拖拽與排序功能的示例代碼

    在Web應(yīng)用程序中,實(shí)現(xiàn)拖拽和排序功能是非常常見的需求,本文為大家介紹了如何使用Vue來實(shí)現(xiàn)一個(gè)簡(jiǎn)單但功能強(qiáng)大的拖拽與排序功能,感興趣的小伙伴可以參考下
    2023-10-10
  • vue3應(yīng)用elementPlus table并滾動(dòng)顯示問題

    vue3應(yīng)用elementPlus table并滾動(dòng)顯示問題

    這篇文章主要介紹了vue3應(yīng)用elementPlus table并滾動(dòng)顯示問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue實(shí)現(xiàn)的網(wǎng)易云音樂在線播放和下載功能案例

    vue實(shí)現(xiàn)的網(wǎng)易云音樂在線播放和下載功能案例

    這篇文章主要介紹了vue實(shí)現(xiàn)的網(wǎng)易云音樂在線播放和下載功能,結(jié)合具體實(shí)例形式分析了網(wǎng)易云音樂相關(guān)接口調(diào)用與操作技巧,需要的朋友可以參考下
    2019-02-02

最新評(píng)論