[30天 Vue学好学满 DAY13] 组件

组件

可重复使用的实例,有自己的名子,引入後当元素使用。
Data 透过 return 定义为函数 -> 每个实例各自维护不互相影响

直接 new Vue 带入参数

data: {
    count: 0,
}

定义为函数

data() {
    return {
      count: 0,
    };
}

实作

定义组件 : HelloWorld.vue
HTML

<button @click="count++">触发次数 : {{ count }} </button>

srcipt

export default {
  name: "HelloWorld", // 非必要,可移除
  data() {
    return {
      count: 0,
    };
  }
};

於 App.vue 引入并复用
引入

import HelloWorld from './components/HelloWorld.vue';

注册

components: {
    HelloWorld
},

组件定义名称:
kebab-case:单词连接
PascalCase:驼峰式命名法(upper camel case)
ps.两者可互用

HTML

复用 HelloWorld.vue
<hello-world />
<hello-world ></hello-world>
<HelloWorld />

起前端检验
https://ithelp.ithome.com.tw/upload/images/20210912/201295362NxKPDcmfR.png

以上为局部注册


全局注册

於核心文件main.js中引入,并透过.component注册

import HelloWorld from './components/HelloWorld.vue';
Vue.component('component-hello', HelloWorld)

移除App.vue的局部注册,并新增全局组件於HTML

<!-- 局部注册 -->
<hello-world />
<hello-world ></hello-world>
<HelloWorld />
<!-- 全局注册 -->
<component-hello />

起前端检验
仅剩全局组件
https://ithelp.ithome.com.tw/upload/images/20210912/20129536dIrTS0CZra.png

上述局部注册为於特定组件进行引入,若皆从main.js引入,则如下

// 全局
Vue.component('component-hello-global', HelloWorld)
new Vue({
  components: {
    // 局部
    'component-hello-local': HelloWorld
  },
  render: h => h(App),
}).$mount('#app')

有错误请不吝指教!
参考资料
https://vuejs.org/v2/guide
https://segmentfault.com/a/1190000019903495

感谢各路大神 /images/emoticon/emoticon31.gif


<<:  .NET 新手 无痛入职 _ Day1 前言

>>:  Day 13 复习 golang concurrency 语法篇 II

第34天~

这个的上一篇:https://ithelp.ithome.com.tw/articles/10258...

Angular 深入浅出三十天:表单与测试 Day03 - Reactive Forms 实作 - 以登入为例

今天要来用 Reactive Forms 的方式实作一个简单的登入系统,撇开 UI 不谈,具体的功...

你便利 我超伤

曾经跟在便利商店工作过的学弟聊天,从他分享的经验谈,谈到加盟便利超商连锁店,并非每一家都像加盟广告那...

【在厨房想30天的演算法】Day 05 资料结构之冰箱整理术

Aloha!又是我少女人妻 Uerica!昨晚跟朋友聊天突然发现,如果没有最终目标或目标不够明确,那...

系统分析师的养成之路—商业思维篇

真正的重头戏来罗!身为合格的系统分析师,决定你的身价如何的重点:商业思维!这是很多工程师转分析师能否...