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

Vue單文件組件開發(fā)實(shí)現(xiàn)過程詳解

 更新時(shí)間:2020年07月30日 15:36:32   作者:viewts  
這篇文章主要介紹了Vue單文件組件開發(fā)實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

第一步:配置環(huán)境

安裝cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

安裝@vue/cli

cnpm install -g @vue/cli

檢查版本是否正確

vue --version

使用vue.server和vue.build對*.vue文件進(jìn)行快速原型開發(fā),需要安裝vue serve

cnpm install -g @vue/cli-service-global

新建一個(gè)App.vue文件測試安裝是否成功:

<template>2 <h1>Hello world!</h1>3 </template>

在該文件當(dāng)前路徑運(yùn)行:

vue serve App.vue

打開瀏覽器輸入localhost:8080看到如下畫面則運(yùn)行成功

環(huán)境安裝到此結(jié)束,接下來用一個(gè)簡單案例來學(xué)習(xí)vue的單文件組件開發(fā)。

第二步:簡單案例實(shí)戰(zhàn)

以一個(gè)物品清單為例:

該案例由4個(gè)組件構(gòu)成,分別是:

1. addItem.vue 添加物品

2. item.vue 物品實(shí)例

3. items.vue 物品列表

4. changeTitle 改變標(biāo)題

首先,創(chuàng)建一個(gè)項(xiàng)目demo:

vue create demo

項(xiàng)目默認(rèn)目錄如下,啟動(dòng)主頁在public, vue源碼(包括組件)都存放到src

然后分別編寫各組件代碼

1. addItem.vue:

<template>
  <div class="input-group">
    <input type="text" class="form-control" placeholder="add shopping list item" v-model="newItem">
    <span class="input-group-btn">
      <button class="btn btn-primary" @click="emitAdd">
        <i class="fa fa-plus-square-o fa-lg"> </i><span>Add</span>
      </button>
    </span>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newItem: ''
    }
  },
  methods: {
    emitAdd() {
      this.$emit('addItem', this.newItem);
    }
  }
}
</script>

<style>
</style>

2. item.vue:

<template>
  <li :class="{'removed': item.checked}" class="list-group-item">
    <div class="checkbox">
      <label>
        <input type="checkbox" v-model="item.checked">
        <span>{{ item.text }}</span>
      </label>
    </div>
  </li>
</template>

<script>
export default {
  props: ['item']
}
</script>

<style>
.removed {
  color: gray;
}

.removed span {
  text-decoration: line-through;
}
</style>

3. items.vue:

<script>
import item from './item'

export default {
  props: ['items'],
  components: {
    item
  }
}
</script>

<template>
  <ul class="list-group">
    <item v-for="item in items" :key="item.id" :item="item"></item>
  </ul>
</template>

<style>
</style>

4. changeTitle.vue:

<template>
  <div>
    <em>Change the title here:</em>
    <input type="text" :value="title" @input="onInput">
  </div>
</template>

<script>
export default {
  props: ['title'],
  methods: {
    onInput(event) {
      this.$emit('input', event.target.value);
    }
  }
}
</script>

最后修改App.vue,導(dǎo)入上面的組件:

<template>
  <div id="app" class="container">
    <h1>{{ title }}</h1>
    <add-item @addItem="add"></add-item><br>
    <items :items="items"></items>
    <div class="footer">
      <hr>
      <change-title :title="title" v-model="title"></change-title>
    </div>
  </div>
</template>

<script>
import addItem from './components/addItem'
import items from './components/items'
import changeTitle from './components/changeTitle'

export default {
  name: 'app',
  components: {
    addItem,
    items,
    changeTitle
  },
  data() {
    return {
      items: [
        {id: 1, text: 'Bananas', checked: true},
        {id: 2, text: 'Apples', checked: false}
      ],
      title: 'My Items List'
    }
  },
  methods: {
    add(text) {
      this.items.push({
        text: text,
        checked: false
      });
    }
  }
}
</script>

<style>
</style>

需要注意的是:每個(gè)組件必須只有一個(gè)根元素。我這里需要在public/index.html引入bootstrap樣式和font-awesome圖標(biāo)字體。

運(yùn)行程序:

cnpm run serve

最后附上運(yùn)行截圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

正定县| 栾川县| 新民市| 嘉善县| 江山市| 商都县| 锡林郭勒盟| 塔河县| 丹东市| 永昌县| 东莞市| 廉江市| 牡丹江市| 平泉县| 尖扎县| 靖远县| 九龙城区| 梧州市| 怀仁县| 广汉市| 梨树县| 阿坝县| 林甸县| 名山县| 根河市| 江永县| 河北省| 洛阳市| 宣威市| 青州市| 哈密市| 寿宁县| 大港区| 临清市| 五河县| 临澧县| 乌苏市| 独山县| 英吉沙县| 天峨县| 剑河县|