Vue

1.組件
全局組件注冊、局部組件注冊、父子雙向傳遞值、動態組件、slot內容分發、data、$refs
(1)配置子組件
components:{ "my-component3":{ template:"<h3>這是子組件</h3>" } }

var myComponent4 = Vue.extend({
        template :`<h4> 第四個組件{{msg}} <h4>`
    })

(2)在vue中組件的作用域是隔離的,如果想要在子組件中訪問父級的數據,則需要父級顯式的向下傳遞

為了解決地址傳遞的問題,在組件中聲明data必須為函數
且返回一個新對象,這樣每個組件用到的data是一塊新的內存地址,組件間互不影響

                   return {
                       num:0
                   }
                }```
`data:{ num:0 }`
如果需要獲取dom元素,可將元素以 ref ="name" 進行標識
通過this.$refs.name 得到對應的name的dom,盡量少用
`  this.$refs.mi.focus();`

(3)組件動態切換
通過component聲明動態組件,綁定is決定渲染哪個子組件,is所綁定的值,必須在component中主頁
通過keep-alive標簽包裹 component 標簽,使組件保留在內存中,重新切換時,將不再重新渲染
        在1.x版本中,keep-alive是component的一個屬性<component keep-alive></component>

<button @click="currentView='home'"> 首頁 </button>
<button @click="currentView='cart'"> 購物車 </button>
<button @click="currentView='mine'"> 個人中心 </button>



<keep-alive>
<component :is="currentView"></component>
</keep-alive>

var vm = new Vue({
el: ".box",
data: {
currentView : "home"
},
components: {
home : {
template : <h1>首頁{cjfntpf}</h1>,
data :function(){
return {
d:new Date().getTime()
}
}
},
cart : {
template : <h1>購物車</h1>
},
mine : {
template : <h1>個人中心</h1>
}
},
methods:{

    }
})

(4)slot
`<slot></slot>`插槽(內容分發)
有name屬性的標簽叫 具名插槽  `<slot name='a'></slot>`
沒有name屬性的標簽叫 匿名插槽
在組件渲染模板時,會拋棄標簽內的原始內容,為了保留原始內容,可以在 模板 內通過 slot 標簽預留插槽位
原始內容(不含slot屬性的)會默認放到匿名的插槽內
含有slot屬性的,會去查找對應的插槽,未找到,將拋棄內容
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 下載安裝搭建環境 可以選npm安裝,或者簡單下載一個開發版的vue.js文件 瀏覽器打開加載有vue的文檔時,控制...
    冥冥2017閱讀 6,078評論 0 42
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內容,還有我對于 Vue 1.0 印象不深的內容。關于...
    云之外閱讀 5,072評論 0 29
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,233評論 0 6
  • 此文基于官方文檔,里面部分例子有改動,加上了一些自己的理解 什么是組件? 組件(Component)是 Vue.j...
    陸志均閱讀 3,846評論 5 14
  • 之前學過vue,上一個項目做小程序,發現跟vue差不多,于是給一個星期的時間自己重拾vue,但是發現高估了自己,并...
    還有誰叫李狗蛋閱讀 512評論 1 1