最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Vue中的options選項

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(掛在點)
new Vue({
    el:"#app"
    template:`<div>我是小明</div>`
})
可以使用$mount代替
new Vue({
    template:`<div>我是小明</div>`
}).$mount("#app")
  • data(內(nèi)部數(shù)據(jù))支持對象和函數(shù),優(yōu)先使用函數(shù)
    • 會被Vue監(jiān)聽
    • 會被Vue實例代理
    • 每次data的讀寫都會被Vue監(jiān)聽
    • Vue會在data變化是更新UI
對象
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組件:注意大小寫)三種方式
注冊全局組件
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>"
  }
  },
  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: "<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>頁面
    <Deon1></Deon1>
    <Deon2></Deon2>
    <Deon3></Deon3>
    <Deon4><Deon4>
    </div> 
  `
}).$mount('#app')
  • 常用的四個生命周鉤子函數(shù)
    • created: 實例出現(xiàn)在內(nèi)存中
    • mounted:實例出現(xiàn)在頁面中觸發(fā)
    • updated:實例出現(xiàn)了變化觸發(fā)
    • destroyed:實例被銷毀了觸發(fā)
new Vue({
    template:"<div>{{n}}</div>",
    data:{
        n:0
    },
     created() {
    console.log("實例出現(xiàn)在內(nèi)存中了觸發(fā)");
  },
  mounted() {
    console.log("實例出現(xiàn)在頁面中觸發(fā)");
  },
  updated() {
    console.log("實例出現(xiàn)了變化觸發(fā)");
  },
  destroyed() {
    console.log("實例被銷毀了觸發(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ù)依賴是否變化來緩存(如果依賴沒有變化,就不會重新結(jié)算)
  • 類型{ [key: string]: Function | { get: Function, set: Function } }

用途

緩存

  • 如果依賴的屬性沒有變,化就不會重新計算
  • getter/setter默認(rèn)不會做緩存,Vue做了特殊處理
  • 如何緩存?看示例 這是示例不是Vue的實現(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變化,就會執(zhí)行函數(shù)
  • options.watch用法
  • this.$watch用法
  • deep:偵聽的對象的 property 改變時被調(diào)用,不論其被嵌套多深
  • immediate:偵聽開始之后被立即調(diào)用
  • 類型{ [key: string]: string | Function | Object | Array }

用途

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

何為變化

 原本 let obj = {a:'a'} 現(xiàn)在 obj={a:'a'} 請問
 obj變了沒有. obj.a變了沒有
簡單類型看至,復(fù)雜類型(對象)看地址
這其實就是 ===的規(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)會在任何被偵聽的對象的 property 改變時被調(diào)用,不論其被嵌套多深
    c: {
      handler: function (val, oldVal) { /* ... */ },
      deep: true//監(jiān)聽是否深入
    },
    // 該回調(diào)將會在偵聽開始之后被立即調(diào)用
    d: {
      handler: 'someMethod',
      immediate: true
    },
    // 你可以傳入回調(diào)數(shù)組,它們會被逐一調(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ù)綁定了父級作用域的上下文,所以 this 將不會按照期望指向 Vue 實例,this.updateAutocomplete 將是 undefined

deep: true是干什么的?

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

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

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

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

computed和watch的區(qū)別

computed計算屬性

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

watch 監(jiān)聽器

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

總結(jié)

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

相關(guān)文章

  • vue關(guān)閉eslint檢查的方式

    vue關(guān)閉eslint檢查的方式

    這篇文章主要介紹了vue關(guān)閉eslint檢查的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Proxy中代理數(shù)據(jù)攔截的方法詳解

    Proxy中代理數(shù)據(jù)攔截的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Proxy中代理數(shù)據(jù)攔截的方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作具有一定的借鑒價值,需要的可以參考一下
    2022-12-12
  • vue可拖拽的瀑布流布局組件實現(xiàn)詳解

    vue可拖拽的瀑布流布局組件實現(xiàn)詳解

    這篇文章主要為大家介紹了vue的可拖拽的瀑布流布局組件有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Vue+SpringBoot前后端分離中的跨域問題

    Vue+SpringBoot前后端分離中的跨域問題

    在前后端分離開發(fā)中,需要前端調(diào)用后端api并進(jìn)行內(nèi)容顯示,所以本文就介紹了Vue+SpringBoot前后端分離跨域問題,感興趣的可以了解一下
    2021-08-08
  • 使用json-editor-vue3(Json字段編輯器)

    使用json-editor-vue3(Json字段編輯器)

    文章介紹了如何在Vue3+Ts項目中使用json-editor-vue3插件,并解決了導(dǎo)入過程中遇到的模塊識別問題,通過步驟說明和代碼示例,展示了如何在項目中成功引入和使用該插件,并提供了一些常見參數(shù)和事件說明
    2025-01-01
  • vue cli3 配置proxy代理無效的解決

    vue cli3 配置proxy代理無效的解決

    今天小編就為大家分享一篇vue cli3 配置proxy代理無效的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • element實現(xiàn)合并單元格通用方法

    element實現(xiàn)合并單元格通用方法

    這篇文章主要介紹了element實現(xiàn)合并單元格通用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue基于element-ui的三級CheckBox復(fù)選框功能的實現(xiàn)代碼

    vue基于element-ui的三級CheckBox復(fù)選框功能的實現(xiàn)代碼

    最近vue項目需要用到三級CheckBox復(fù)選框,需要實現(xiàn)全選反選不確定三種狀態(tài)。這篇文章主要介紹了vue基于element-ui的三級CheckBox復(fù)選框功能的實現(xiàn)方法,需要的朋友可以參考下
    2018-10-10
  • vue怎樣獲取當(dāng)前時間,并且傳遞給后端(不用注解)

    vue怎樣獲取當(dāng)前時間,并且傳遞給后端(不用注解)

    這篇文章主要介紹了vue怎樣獲得當(dāng)前時間,并且傳遞給后端(不用注解)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • vue項目打包清除console.log的4種方法

    vue項目打包清除console.log的4種方法

    項目打包的時候想要刪除console.log,本文主要介紹了vue項目打包清除console.log的4種方法,具有一定的參考價值,感興趣的可以了解游戲
    2023-11-11

最新評論

商丘市| 昌黎县| 南召县| 张家港市| 揭阳市| 北碚区| 霍城县| 抚顺市| 安国市| 沙田区| 曲靖市| 宽城| 五台县| 错那县| 云林县| 额济纳旗| 南开区| 剑川县| 栾川县| 元氏县| 湘乡市| 大石桥市| 邳州市| 乌拉特前旗| 和田市| 吴旗县| 灵石县| 荃湾区| 宁德市| 贵阳市| 兴文县| 沾化县| 岚皋县| 体育| 沾益县| 三河市| 新余市| 漠河县| 衡阳县| 德江县| 观塘区|