溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue中怎么實(shí)現(xiàn)一個(gè)單文件組件

發(fā)布時(shí)間:2021-07-09 14:17:00 來源:億速云 閱讀:138 作者:Leah 欄目:web開發(fā)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Vue中怎么實(shí)現(xiàn)一個(gè)單文件組件,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

背景

相信大家在使用Vue開發(fā)項(xiàng)目時(shí),基本都是以單文件組件的形式開發(fā)組件的,這種方式好處多多:

1.代碼集中,便于開發(fā)、管理和維護(hù)

2.可復(fù)用性高,直接將vue文件拷貝到新項(xiàng)目中

我暫時(shí)就想到這兩點(diǎn),童鞋們可以在評(píng)論里幫我補(bǔ)充;因?yàn)橛羞@么多優(yōu)點(diǎn),所以決定有必要將vue組件的常用配置項(xiàng)提煉出來,形成一個(gè)組件模板,方便日后項(xiàng)目開發(fā)復(fù)用

 <template>
 <div>
  <h2>{{title}}</h2>
  <ChildComponents></ChildComponents>
 </div>
</template>
<script>
//子組件要提前引入,才可使用
import ChildComponents from './ChildComponents.vue'
//也可引入一些公共Js腳本或類庫
import Cookie from '../lib/cookie.js'

//Js部分盡量采用ES6語法,webpack babel插件會(huì)轉(zhuǎn)義兼容
export default {
 //組件私有數(shù)據(jù)(必須是function,而且要return對(duì)象類型)
 data () {
  return {
   title: '組件標(biāo)題',
   firstName: '',
   lastName: '',
  }
 },
 //父組件傳遞過來的數(shù)據(jù)(兩種方式聲明:1.數(shù)組 2.對(duì)象)
 //數(shù)組方式
 props: ['age'],
 //對(duì)象方式
 /*props: {
  age: {
   type: Number,
   default: 0,
   required: true,
   validator: function (value) {
    return value >= 0
   }
  }
 }*/
 //計(jì)算屬性
 computed: {
  fullName () {
   return this.firstName + this.lastName
  }
 },
 //監(jiān)聽
 watch: {
  title (preVal, newVal) {
    console.log(`改變之前的值:${preVal};改變之后的值:${newVal}`)
  }
 },
 //函數(shù)集,自己封裝,便于開發(fā)使用
 methods: {
  getCurrentDate () {
   return new Date().toLocaleDateString()
  }
 },
 //生命周期鉤子:實(shí)例初始化之后,數(shù)據(jù)觀測(cè)(data observer) 和 event/watcher 事件配置之前被調(diào)用
 beforeCreated () {
  console.log('component before created')
 },
 //生命周期鉤子:組件實(shí)例完成創(chuàng)建之后調(diào)用
 created () {
  console.log('component created')
 },
 //生命周期鉤子:組件實(shí)例渲染完成時(shí)調(diào)用
 mounted () {
  console.log('component mounted')
 },
 //要用到哪些子組件(如果組件已是最小粒度,那么可省略該屬性)
 components: {
  ChildComponents
 }
}
</script>
<style lang="scss" scoped>
/**使用scss編寫樣式,既可提高開發(fā)效率,也方便維護(hù)
* scoped省略后,該樣式片段會(huì)應(yīng)用到頁面全局
* 支持import語法引入css文件
*/
@import "../base/reset.css";
div {
 h2 {
  color: #c23a3f;
 }
}

</style>

上述就是小編為大家分享的Vue中怎么實(shí)現(xiàn)一個(gè)單文件組件了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI