vue寫一個(gè)組件
寫一個(gè)vue組件
我下面寫的是以.vue結(jié)尾的單文件組件的寫法,是基于webpack構(gòu)建的項(xiàng)目。如果還不知道怎么用webpack構(gòu)建一個(gè)vue的工程的,可以移步到vue-cli。
一個(gè)完整的vue組件會(huì)包括一下三個(gè)部分:
- template:模板
- js: 邏輯
- css : 樣式
每個(gè)組件都有屬于自己的模板,js和樣式。如果將一個(gè)頁(yè)面比喻成一間房子的話,組件就是房子里的客廳、臥室、廚房、廁所。如果把廚房單獨(dú)拿出來的話,組件又可以是刀、油煙機(jī)...等等。就是說頁(yè)面是由組件構(gòu)成的,而組件也可以是組件構(gòu)成的。這樣就可以非常的靈活,耦合性也非常的低。
先來看看一個(gè)組件在不是.vue文件內(nèi)的寫法:
Vue.component('simple-counter', { template: '<div id="inputBox"><input type="text"></div>', data () { // 數(shù)據(jù) return { counter: 0 } }, methods: { // 寫點(diǎn)方法 }, created () { // 生命鉤子 }, computed: { // 計(jì)算屬性 } })
template是用來干嘛的呢?
<template> <div id="inputBox"> <input type="text"> </div> </template> <!-- template就是這個(gè)組件的html,也就是下面部分(vue-loader會(huì)將template標(biāo)簽下的內(nèi)容解析出來): --> <div id="inputBox"> <input type="text"> </div> <!-- 對(duì)應(yīng)原生寫法的話,就是template內(nèi)的dom字符串 -->
js部分
export default { data () { return { counter: 0 } }, methods: { // 方法 }, created () { // 生命鉤子 }, computed: { // 計(jì)算屬性 } } // 在這里很明顯js部分就是對(duì)應(yīng)的原生寫法內(nèi)的非template部分了。 // export default這個(gè)是es6的模塊寫法,不懂的可以先去了解es6的模塊化
css部分
<style lang="scss" scoped> ...樣式 </style>
<!--這里的你可以使用scss(CSS擴(kuò)展語(yǔ)言)只要安裝"sass-loader"和"node-sass"這兩個(gè)npm包就好了,vue-cli已經(jīng)配好相關(guān)參數(shù)了。如果想使用less或其它c(diǎn)ss擴(kuò)展語(yǔ)音,只要裝好各自的編譯包就好了。而scoped是讓css的作用域只在該文件下。-->
引入
要怎么在其它組件引用該組件?
組件一(button.vue)
<template> <div class="button"> <button @click="onClick">{{text}}</button> </div> </template> <script> export default { props: ['text'], // 獲取父組件的傳值 data () { return { } }, methods: { onClick () { console.log('點(diǎn)擊了子組件') } } } </script> <style lang="scss" scoped> .button { button { width: 100px; } } </style>
組件二(box.vue)
<template> <div class="box"> <v-button :text="text"></v-button> <!--使用組件并傳值(text)--> </div> </template> <script> import Button from './button.vue' // 引入子組件 export default { components: { 'v-button': Button }, data () { return { text: '按鍵的name' } }, methods: { } } </script>
總結(jié)
以上所述是小編給大家介紹的vue組寫一個(gè)組件,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
關(guān)于vue 結(jié)合原生js 解決echarts resize問題
這篇文章主要介紹了關(guān)于vue 結(jié)合原生js 解決echarts resize問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07Vue.extend 登錄注冊(cè)模態(tài)框的實(shí)現(xiàn)
這篇文章主要介紹了Vue.extend 登錄注冊(cè)模態(tài)框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12vuex學(xué)習(xí)進(jìn)階篇之getters的使用教程
getters用于獲取state里的數(shù)據(jù),它類似于計(jì)算屬性,如果要獲取的數(shù)據(jù)并沒有發(fā)生變化的話,就會(huì)返回緩存的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于vuex學(xué)習(xí)進(jìn)階篇之getters的使用教程,需要的朋友可以參考下2022-10-10vue學(xué)習(xí)筆記之作用域插槽實(shí)例分析
這篇文章主要介紹了vue學(xué)習(xí)筆記之作用域插槽,結(jié)合實(shí)例形式分析了vue.js作用域插槽基本使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-02-02vue新建項(xiàng)目并配置標(biāo)準(zhǔn)路由過程解析
這篇文章主要介紹了vue新建項(xiàng)目并配置標(biāo)準(zhǔn)路由過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12關(guān)于vue?src路徑動(dòng)態(tài)拼接的小知識(shí)
這篇文章主要介紹了vue?src路徑動(dòng)態(tài)拼接的小知識(shí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-04-04flutter使用tauri實(shí)現(xiàn)一個(gè)一鍵視頻轉(zhuǎn)4K軟件
這篇文章主要為大家介紹了flutter使用tauri實(shí)現(xiàn)一個(gè)一鍵視頻轉(zhuǎn)4K軟件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09