九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
VUE2.0學(xué)習(xí)總結(jié)
摘要: 年后公司項(xiàng)目開始上vue2.0,自己對學(xué)習(xí)進(jìn)行了總結(jié),希望對大家有幫助!

VUE2.0學(xué)習(xí)

vue介紹

vue是什么?

  • https://vuefe.cn/guide
  • vue也是一個(gè)數(shù)據(jù)驅(qū)動(dòng)框架,做spa頁面的
  • vue如果不做頁面可以當(dāng)做一個(gè)單獨(dú)使用的js庫,做雙向數(shù)據(jù)綁定用
  • Vue的核心庫只關(guān)注視圖層,但是vue并不只關(guān)注視圖,和angular一樣也有指令,過濾器這些東西
  • vue有非常強(qiáng)大的單文件組件
    • 就是css+html+js都寫在一個(gè).vue文件中,這樣定義的組件很簡潔,清晰,組件化分的很徹底
    • 而angular中的js文件只能寫js
    • 雖然react中可以寫css-in-js,但是缺乏選擇器功能,即便可以在js中引入css文件,但還是不方便
  • vue融合了react和angular的優(yōu)點(diǎn),并且解決了react和angualr的痛點(diǎn)

vue學(xué)習(xí)地址和技術(shù)棧

  • Vue2.0中文網(wǎng):https://vuefe.cn/
  • vue全家桶變?yōu)関ue2.0+vue-router+fetch+vuex
  • 我們下文中所出現(xiàn)的vue都指代vue2.0

vue和其他框架的對比

vue快速開始

用vue-cli開始

  • github地址:https://github.com/vuejs/vue-cli
# 全局安裝 vue-cli$ npm install --global vue-cli# 創(chuàng)建一個(gè)基于 webpack 模板的新項(xiàng)目$  vue init webpack my-project# 安裝依賴,走你$ cd my-project$ npm install$ npm run dev
  • 你只需要關(guān)注你配置的東西就可以了,不需要關(guān)注webpack的配置項(xiàng),因?yàn)閣ebpack的配置很難,很多人不會(huì),也是為了簡便開發(fā)

自己創(chuàng)建Vue的開發(fā)環(huán)境

準(zhǔn)備工作

  • 升級webstorm到最新版本,老版本對.vue文件的開發(fā)是有bug的
  • 下載webstorm為Vue提供的插件vue-for-idea,這個(gè)插件可以讓webstorm支持以.vue結(jié)尾的文件能夠運(yùn)行

修改webpack的配置文件

  • 把之前react中配置的webpack.publish.config.js和webpack.develop.config.js直接拿過來用
  • 下載vue-loader加載器
    • npm install vue-loader -save-dev
  • 配置webpack的loader部分
 {    test: /\.js$/, // 用正則來匹配文件路徑,這段意思是匹配 js 或者 jsx    loader: 'babel'// 加載模塊 "babel""babel-loader" 的縮寫}, {    test: /\.vue$/,    loader: 'vue'}
  • 單獨(dú)配置一個(gè)vue屬性,和entry屬性是同級別的
vue: {        loaders: {            js: 'babel'        }    }
  • 在項(xiàng)目根目錄生成一個(gè).babelrc文件
{  "presets": ["es2015","stage-0","stage-1","stage-2","stage-3"]//  "plugins": ["transform-runtime"]}
  • 修改自動(dòng)識別.vue的擴(kuò)展文件名
 resolve: {        extensions: ['', '.js', '.json', '.scss', '.vue']    }
  • 注意在publish和develop中都要配置
  • 下載vuenpm install vue -save
  • 下載編譯模塊npm install vue-template-compiler -save
  • src/js文件中創(chuàng)建main.js
import Vue from 'vue'import AppContainer from '../containers/AppContainer'const app = new Vue({    render: h => h(AppContainer),}).$mount('#app')// new Vue({//     el:'#app',//     render: h => h(App)// })
  • 在src/container中創(chuàng)建AppContainer.vue文件
<template>    <div>        {{msg}}    </div></template><style>    body{        background-color:#ff0000;    }</style><script>    export default{        data(){            return{                msg:'hello vue'            }        }    }</script>
  • 當(dāng)你第一次創(chuàng)建.vue文件的時(shí)候IDE會(huì)問你用什么語法去解析,你選擇html語法
  • 接下來就可以直接運(yùn)行npm run develop了
  • 你可以去google中搜索vue-devtools下載并安裝,用于幫你監(jiān)聽組件的data屬性變化

vue中的基礎(chǔ)知識點(diǎn)

Vue實(shí)例

屬性與方法

  • 我們自定義的一些數(shù)據(jù)和方法是要綁定到實(shí)例的不同屬性上面去的
    • 例如數(shù)據(jù)都要綁定要data屬性,方法都要綁定到methods方法
  • 實(shí)例上的data和methods里面的key值會(huì)自動(dòng)掛載到vue實(shí)例上,我們管他們叫動(dòng)態(tài)屬性,獲取方式直接使實(shí)例.動(dòng)態(tài)屬性名
  • vue實(shí)例上的實(shí)例屬性要通過實(shí)例.$實(shí)例屬性名獲取
  • 在vue實(shí)例里面用this,this指向的是vue實(shí)例
    • 可以通過this.a去獲取動(dòng)態(tài)屬性
    • 可以通過this.$data去獲取實(shí)例屬性
  • 實(shí)例上有一個(gè)$watch方法可以監(jiān)聽data屬性里面的數(shù)據(jù)的變化,data一變會(huì)自動(dòng)觸發(fā)監(jiān)聽事件的執(zhí)行
var data = {a: 1}    const app = new Vue({        // 和數(shù)據(jù)相關(guān)的都掛載到data上        data: data,        // 和方法相關(guān)的都掛載到methods上        methods: {            // this和$的使用            func1: function () {                console.log(this.a);                console.log(this.$data.a);            },            changeData:function () {                this.a=2            }        }    })    // 先監(jiān)聽再改變    app.$watch('a', function (newVal, oldVal) {        console.log(newVal)        console.log(oldVal)    })    // 值改變之后會(huì)自動(dòng)執(zhí)行監(jiān)聽方法    // data的值是可以直接改變的,和react的setState方法不一樣,因?yàn)関ue里面用了ES6的set和get方法,可以起到自動(dòng)監(jiān)聽的作用    app.a=3    // 動(dòng)態(tài)屬性和實(shí)例屬性//    console.log(app)//    console.log(app.a)//    console.log(app.$data.a)

實(shí)例生命周期

  • 和react的生命周期基本思想是一樣的
    • 只不過react中是監(jiān)聽props和state屬性的變化
    • 而在vue中是只監(jiān)聽data屬性的變化
  • vue中的生命周期函數(shù)要比react中的方法多
  • 這些生命周期方法只能在spa應(yīng)用中起作用,單獨(dú)作為雙向數(shù)據(jù)綁定庫無法生效
  • vue生命周期圖

模板語法

  • 就是如何在.vue文件的template標(biāo)簽中書寫內(nèi)容
  • {{}}(Mustache語法)里面會(huì)按照純文本輸出
  • v-once指令只會(huì)執(zhí)行一次性地插值,當(dāng)數(shù)據(jù)改變時(shí),插值處的內(nèi)容不會(huì)更新。但請留心這會(huì)影響到該節(jié)點(diǎn)上所有的數(shù)據(jù)綁定:
  • v-html會(huì)按照html規(guī)則去解析內(nèi)容
  • 我們在為標(biāo)簽的屬性賦值的時(shí)候不能Mustache語法,我們要用v-bind指令
    • v-bind綁定的屬性必須是data屬性里面定義的值,如果想寫固定的值加單引號
// 錯(cuò)誤的寫法<div id="{{id}}"></div>// 正確的寫法<div v-bind:id="id"></div>
  • 在Mustache中可以處理一些簡單的js表達(dá)式,Mustache中的屬性本身有什么方法,在里面也是可以直接使用的
{{ number + 1 }}{{ ok ? 'YES' : 'NO' }}{{ message.split('').reverse().join('') }}<div v-bind:id="'list-' + id"></div>
  • 在Mustache中可以使用自定義過濾器,也可以多過濾器串聯(lián)。但是過濾器不能用在v-bind中,如果想實(shí)現(xiàn)相同的效果在v-bind中我們要用計(jì)算屬性
{{ message | capitalize }}{{ message | filterA | filterB }}new Vue({  // ...  filters: {    capitalize: function (value) {      if (!value) return ''      value = value.toString()      return value.charAt(0).toUpperCase() + value.slice(1)    }  }})
  • 在dom標(biāo)簽中可以使用指令,如v-if,v-for
    • <a v-on:click="doSomething">
  • 在dom的事件中可以使用修飾符去幫你簡化一些操作
    • <form v-on:submit.prevent="onSubmit"></form>
  • v-bind和v-on在模板語法中可以縮寫
<!-- 完整語法 --><a v-bind:href="url"></a><!-- 縮寫 --><a :href="url"></a>
<!-- 完整語法 --><a v-on:click="doSomething"></a><!-- 縮寫 --><a @click="doSomething"></a>

計(jì)算屬性

  • 計(jì)算屬性可以處理模板語法中的復(fù)雜業(yè)務(wù)邏輯,跟Mustache語法比
  • 計(jì)算屬性 vs methods

    • 我們看到計(jì)算屬性和methods的效果基本你一樣,那么他們的區(qū)別是什么?
    • 計(jì)算屬性的依賴如果沒有發(fā)生變化,當(dāng)你再次調(diào)用計(jì)算屬性的時(shí)候,能夠立即返回上次緩存的計(jì)算值,而不需要從新執(zhí)行計(jì)算屬性的方法
    • 而方法需要從新執(zhí)行方法體
    • 樣例
    <template>    <div>        <p>Original message: "{{ message }}{{name}}"</p>        <p>Computed reversed message: "{{ reversedMessage }}"</p>        <p>Computed reversed message: "{{ reverseMessage() }}"</p>    </div></template><style>    body{        background-color:#ff0000;    }</style><script>    export default{        data(){            return{                message: 'Hello',                name:'a'            }        },        mounted(){            this.name="b"        },        computed: {            reversedMessage: function () {                console.log('計(jì)算屬性被調(diào)用了')                return this.message.split('').reverse().join('')            }        },        methods: {            reverseMessage: function () {                console.log('方法被執(zhí)行了')                return this.message.split('').reverse().join('')            }        }    }</script>
  • 計(jì)算屬性 vs watch

    • watch方法每次只能監(jiān)聽一個(gè)data值的變化
    • 而計(jì)算屬性可以同時(shí)監(jiān)聽多個(gè)data值的變化
    • 用計(jì)算屬性可以簡化watch中重復(fù)的代碼
    <!--頁面--><div id="demo">{{ fullName }}</div>
      //watch寫法  var vm = new Vue({    el: '#demo',    data: {      firstName: 'Foo',      lastName: 'Bar',      fullName: 'Foo Bar'    },    watch: {      firstName: function (val) {        this.fullName = val + ' ' + this.lastName      },      lastName: function (val) {        this.fullName = this.firstName + ' ' + val      }    }  })  //計(jì)算屬性的寫法  //本質(zhì)是你要獲取全名  var vm = new Vue({    el: '#demo',    data: {      firstName: 'Foo',      lastName: 'Bar'    },    computed: {      fullName: function () {        return this.firstName + ' ' + this.lastName      }    }  })
  • 計(jì)算setter

    • 計(jì)算屬性默認(rèn)是只有g(shù)etter的,那么data屬性里面你的值發(fā)生改變了,計(jì)算屬性要從新執(zhí)行
    • 而setter的作用是調(diào)用計(jì)算屬性的時(shí)候給一個(gè)初始值,那么data屬性里面的值也會(huì)跟著做相應(yīng)的改變
    // 接上面的代碼段computed: {  fullName: {    // getter    get: function () {      return this.firstName + ' ' + this.lastName    },    // setter    set: function (newValue) {      var names = newValue.split(' ')      this.firstName = names[0]      this.lastName = names[names.length - 1]    }  }}
  • vue實(shí)例上的觀察watch還是很有用的,在進(jìn)行執(zhí)行異步操作或昂貴操作時(shí),我們要用watch這個(gè)實(shí)例屬性
    • 因?yàn)槟悴灰浻?jì)算屬性出現(xiàn)的原因是為了解決mustache語法中有過多的邏輯操作問題,它只能進(jìn)行一些小型操作的內(nèi)容

Class與Style綁定

  • 綁定要用v-bind:class和:bind:style
  • v-bind:class指令可以與普通的class屬性共存
  • 綁定的時(shí)候可以給對象,可以個(gè)數(shù)組,還可以有條件判斷和三元表達(dá)式

條件渲染

  • v-if和v-else只能控制一個(gè)標(biāo)簽的渲染,而且v-else要緊跟著v-if
  • 如果想要控制一部分標(biāo)簽的渲染,需要用<template>標(biāo)簽包裹,v-if作用在template標(biāo)簽上
  • v-show也可以控制標(biāo)簽的顯示隱藏,不過只是簡單的切換樣式
    • v-show的元素會(huì)始終渲染并保持在 DOM 中,v-if的元素會(huì)被移除
    • 注意 v-show 不支持 <template> 語法
  • v-if是惰性的,只有在條件第一次為true的時(shí)候才進(jìn)行局部渲染吧
  • v-if有更高的切換消耗,v-show有更高的初始渲染消耗。因此如果需要頻繁切換使用v-show較好,如果在運(yùn)行時(shí)條件不大可能改變則使用v-if較好。

列表渲染

  • v-for是vue中做循環(huán)的,值可以給數(shù)組,對象,數(shù)值三種類型
  • 可以用of替換in
  • 如果想循環(huán)渲染一部分標(biāo)簽,要用template標(biāo)簽包裹,v-for作用在template標(biāo)簽上
  • 在循環(huán)渲染引入的自定義組件的時(shí)候要手動(dòng)為組件傳遞item的屬性值
    <my-components      is="todo-item"      v-for="(item, index) in todos"      v-bind:title="item"      v-on:remove="item.splice(index, 1)"    >     </my-components>
  • 在循環(huán)渲染的時(shí)候要?jiǎng)討B(tài)的綁定v-bind:key,這樣可以提升vue的渲染效率
  • Vue 包含一組觀察數(shù)組的變異方法,只要調(diào)用它們將會(huì)觸發(fā)視圖更新,并且改變了原數(shù)組
    • push() pop() shift() unshift() splice() sort() reverse()
  • 重塑數(shù)組不會(huì)改變原來的數(shù)據(jù),而是返回一個(gè)改變之后的新數(shù)據(jù)
    • filter(), concat(), slice()
    • 重塑數(shù)組一般是賦值用,這樣才能觸發(fā)vue的重新渲染,而你并不需要擔(dān)心性能問題,因?yàn)関ue會(huì)智能的重用數(shù)組
  • 由于JavaScript 的限制,Vue不能檢測以下變動(dòng)的數(shù)組:
    • 當(dāng)你直接設(shè)置一個(gè)項(xiàng)的索引時(shí),例如: vm.items[indexOfItem] = newValue
      • 用Vue.set解決
    • 當(dāng)你修改數(shù)組的長度時(shí),例如: vm.items.length = newLength
      • 用splice解決
  • v-for結(jié)合計(jì)屬性或者methods時(shí)可以做數(shù)據(jù)的過濾和排序
// <li v-for="n in evenNumbers">{{ n }}</li>data: {  numbers: [ 1, 2, 3, 4, 5 ]},computed: {  evenNumbers: function () {    return this.numbers.filter(function (number) {      return number % 2 === 0    })  }}

事件處理器

  • 在v-on:click的時(shí)候想既傳遞參數(shù)又想傳遞事件對象,那么你需要手動(dòng)傳入$event參數(shù)
<button v-on:click="warn('Form cannot be submitted yet.', $event)">Submit</button>
methods: {  warn: function (message, event) {    // 現(xiàn)在我們可以訪問原生事件對象    if (event) event.preventDefault()    alert(message)  }}
  • 常用事件修飾符
<!-- 阻止單擊事件冒泡 --><a v-on:click.stop="doThis"></a><!-- 提交事件不再重載頁面 --><form v-on:submit.prevent="onSubmit"></form><!-- 修飾符可以串聯(lián)  --><a v-on:click.stop.prevent="doThat"></a><!-- 只有修飾符 --><form v-on:submit.prevent></form><!-- 添加事件偵聽器時(shí)使用時(shí)間捕獲模式 --><div v-on:click.capture="doThis">...</div><!-- 只當(dāng)事件在該元素本身(而不是子元素)觸發(fā)時(shí)觸發(fā)回調(diào) --><div v-on:click.self="doThat">...</div><!-- the click event will be triggered at most once --><a v-on:click.once="doThis"></a>
  • 常見的按鍵修飾符
<!-- 只有在 keyCode 是 13 時(shí)調(diào)用 vm.submit() --><input v-on:keyup.13="submit"><!-- 同上 --><input v-on:keyup.enter="submit"><!-- 縮寫語法 --><input @keyup.enter="submit"><!--全部的按鍵別名:-->    enter    tab    delete (捕獲 “刪除” 和 “退格” 鍵)    esc    space    up    down    left    right    ctrl    alt    shift    meta
  • 通過全局 config.keyCodes自定義按鍵修飾符別名,記住要在new新實(shí)例之前注冊
// 可以使用 v-on:keyup.f1Vue.config.keyCodes.f1 = 112

表單控件綁定

  • 表單的雙向綁定用v-model指令
  • 在文本區(qū)域插值<textarea></textarea>并不會(huì)生效,應(yīng)用v-model來代替
  • 單個(gè)復(fù)選按鈕綁定的是選中狀態(tài),多個(gè)復(fù)選按鈕綁定的是值
  • 列表沒有value值綁定的是標(biāo)簽內(nèi)容,有value值綁定的就是value值
  • 如果想讓表單的value屬性綁定到Vue實(shí)例的動(dòng)態(tài)屬性上,需要用v-bind:value綁定
<input type="radio" v-model="pick" v-bind:value="a">
  • .lazy修飾符可以實(shí)現(xiàn)單向數(shù)據(jù)綁定
<!-- 在 "change" 而不是 "input" 事件中更新 --><input v-model.lazy="msg" >

組件

  • 組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼。在較高層面上,組件是自定義元素, Vue.js 的編譯器為它添加特殊功能。在有些情況下,組件也可以是原生 HTML 元素的形式,以 is 特性擴(kuò)展。
    • 組件是類似于angualr中自定義指令,是vue中的一種自定義標(biāo)簽
    • 相當(dāng)于react中的通用組件,高可復(fù)用性的(例如:列表,按鈕,等待器)

組件的使用

全局注冊組件

  • 全局組件的定義一定要在創(chuàng)建根實(shí)例之前
  • 在全局注冊的組件可以在子組件的頁面中隨意使用
Vue.component('soupfree', {        template: '<div>湯免費(fèi)</div>'    })    const app = new Vue({        el:'#example'    })

局部注冊組件

  • 在要使用的組價(jià)中增加components屬性,注冊引入的組件并改名,之后才可以在html代碼中使用
  • 一般局部注冊的組件都是通過.vue文件實(shí)現(xiàn)的
<template>    <div>       姓名:湯免費(fèi),年齡:{{age}},性別:{{genderSex}}    </div></template><style scope>    div{        background-color:orange;    }</style><script>    export default{        data(){            return{            }        },        props:['age','genderSex']    }</script>
<template>    <div>        <soup-free></soup-free>        {{msg}}    </div></template><style>    body{        background-color:#ff0000;    }</style><script>    import soupfree from '../components/soupfree.vue'    export default{        data(){            return{                msg:'hello vue'            }        },        components:{            'soup-free':soupfree        }    }</script>

Dom模板解析問題

  • 當(dāng)你在一些特殊標(biāo)簽如table,ul,ol,select中使用自定義組件的時(shí)候會(huì)有一些限制

    • 例如
    <table>     <my-row>...</my-row></table>
    • 因?yàn)閂ue只有在瀏覽器解析和標(biāo)準(zhǔn)化HTML后才能獲取模版內(nèi)容
    • 再準(zhǔn)確的說也就是用Vue.component方法自定義的組件
    • is特性可以解決這個(gè)問題
      <table>    <tr is="my-row"></tr>  </table>
  • 應(yīng)當(dāng)注意,如果您使用來自以下來源之一的字符串模板,這些限制將不適用:

    • <script type="text/x-template">
      • 因?yàn)檫@里面的代碼是內(nèi)連載頁面中的
    • JavaScript內(nèi)聯(lián)模版字符串
      • 這個(gè)就是template屬性
    • .vue 組件
      • 在webpack構(gòu)建的時(shí)候就已經(jīng)處理了組件內(nèi)容為html了
    • 因此,有必要的話請使用字符串模版。
  • ☆在自定義組件中data屬性必須是函數(shù)形式☆

    • 也就是在Vue.component中和.vue文件中的data屬性
  • 如果是父子組件,那么父組件向子組件傳遞參數(shù)用props,子組件向父組件傳遞參數(shù)用$emit廣播

props屬性

  • 參數(shù)在傳遞的過程中,父組件傳遞參數(shù)用kebab-case(短橫線隔開),在子組件接收的時(shí)候用camelCase
  • 如果傳遞的屬性來自父組件的data屬性,也就是向子組件傳遞動(dòng)態(tài)屬性那么需要用v-bind去傳遞
  • 如何傳遞的屬性類型是數(shù)值型,那么也需要用v-bind去傳遞把
<!-- 傳遞實(shí)際的數(shù)字 --><comp v-bind:some-prop="1"></comp>
  • ☆注意在JavaScript中對象和數(shù)組是引用類型,指向同一個(gè)內(nèi)存空間,如果prop是一個(gè)對象或數(shù)組,在子組件內(nèi)部改變它會(huì)影響父組件的狀態(tài)。
    • 注意一般情況下不要在子組件中改變父組件中傳遞過來的props,但是有兩種特殊情況會(huì)改變
  • 我們在傳遞屬性的時(shí)候可以做屬性校驗(yàn)
    • 當(dāng)prop驗(yàn)證失敗了,Vue將拒絕在子組件上設(shè)置此值,如果使用的是開發(fā)版本會(huì)拋出一條警告。

自定義事件

  • 用v-on去綁定自定義事件
    • 使用$on(eventName)監(jiān)聽事件
    • 使用$emit(eventName)觸發(fā)事件
  • 在自定義組件上是不可以用v-model指令,但是這個(gè)效果可以通過自定義組件在內(nèi)部用自定義事件模擬實(shí)現(xiàn)
Vue.component('currency-input', {  template: '    <span>      $      <input        ref="input"        v-bind:value="value"        v-on:input="updateValue($event.target.value)"      >    </span>  ',  props: ['value'],  methods: {    // 不是直接更新值,而是使用此方法來對輸入值進(jìn)行格式化和位數(shù)限制    updateValue: function (value) {      var formattedValue = value        // 刪除兩側(cè)的空格符        .trim()        // 保留 2 小數(shù)位        .slice(0, value.indexOf('.') + 3)      // 如果值不統(tǒng)一,手動(dòng)覆蓋以保持一致      if (formattedValue !== value) {        this.$refs.input.value = formattedValue      }      // 通過 input 事件發(fā)出數(shù)值      this.$emit('input', Number(formattedValue))    }  }})
  • 兄弟組件之間的通信可以通過bus中央事件總線實(shí)現(xiàn)
    • 但是更復(fù)雜的數(shù)據(jù)通信最好還是用vuex
// 在根組件中注冊bus屬性const app = new Vue({    data:{        bus:new Vue()    },    render: h => h(AppContainer),}).$mount('#app')
// 在子組件中使用this.$root.bus.$emit('eventName',2323)

slot分發(fā)

  • 在自定義組件使用的時(shí)候,如果頁面中有內(nèi)容,又想讓內(nèi)容在自定義組件中使用,我們需要養(yǎng)slot標(biāo)簽
  • slot標(biāo)簽在一個(gè)html標(biāo)簽中只能出現(xiàn)一次
  • 作用域插槽是一種特殊類型的插槽,用作使用一個(gè)(能夠傳遞數(shù)據(jù)到)可重用模板替換已渲染元素。
    • 通俗的說就是子組件里面的數(shù)據(jù)可以通過作用域插槽用在父組件頁面中的指定區(qū)域內(nèi)

動(dòng)態(tài)組件

  • 組件可以通過is特性動(dòng)態(tài)加載
  • 你可以用keep-alive指令緩存組件

雜項(xiàng)

  • 你可以通過ref屬性標(biāo)記一個(gè)組件,之后可以用this.$refs.標(biāo)記的名稱或得到該組件
    • 當(dāng)ref和v-for一起使用時(shí),ref是一個(gè)數(shù)組或?qū)ο?,包含相?yīng)的子組件。
    • $refs只在組件渲染完成后才填充,并且它是非響應(yīng)式的。它僅僅作為一個(gè)直接訪問子組件的應(yīng)急方案——應(yīng)當(dāng)避免在模版或計(jì)算屬性中使用$refs
  • 組件的異步加載

  • 組件命名規(guī)范

  • 組件的遞歸調(diào)用

    • 組件上的name屬性還是這個(gè)組件在全局注冊時(shí)候的名字
      <unique-name-of-my-component name="unique-name-of-my-component"></unique-name-of-my-component>
  • 組件的循環(huán)引用

    • Vue.component全局注冊組件后,這個(gè)問題會(huì)自動(dòng)解決,你要做的就是在寫代碼的時(shí)候不要出現(xiàn)組件循環(huán)引用
  • 內(nèi)聯(lián)模板

    • 通俗的說就是在定義組件的時(shí)候不用給template屬性了
  • x-Templates

友情鏈接:龍馬行空博客

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
vue3的新知識點(diǎn)
Vue 超快速學(xué)習(xí)
vue[0x02] -- 基礎(chǔ)特性
Vue 常見面試題匯總(這些技巧你真的都掌握了嗎?嘔心瀝血2w字整理)
vue之父子組件間通信實(shí)例講解(props、$ref、$emit)
vue基礎(chǔ)中的注意事項(xiàng),以及一些學(xué)習(xí)心得
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服