对于学习 Vue 的同学来说,封装 vue 组件是实现代码复用的重要一环。在 Vue 官网中非常详细地介绍了 vue 组件的相关知识,我这里简单摘取使用最频繁的几个知识点,带大家快速入门 vue 组件的使用。
快速入门
我们假设在页面上有很多地方都要用到一个计数器,与其在每个地方都实现计数器功能,不如封装一个计数器组件,随后在需要的地方引用。于是,我们定义了如下代码所示的计数器组件:
export default {
data() {
return {
count: 0
}
}
}
随后,我们在需要的地方引用计数器组件,如下代码所示。
import ButtonCounter from './ButtonCounter.vue'
export defau服务器托管网lt {
components: {
ButtonCounter
}
}
Here are many child components!
运行效果如下图所示。
本例运行内容及效果可在这里查看:简单的计数器组件。
到这里,我们就完成了一个简单地 vue 组件的封装。
传递参数
在封装组件的时候,我们可能需要向组件中传递参数,从而实现不同的业务逻辑。例如:我们需要封装一个博文的组件,我们需要向组件中传递标题和内容,这时候我们就需要用到传递参数 —— props。对于博文组件,我们对于组件的封装如下代码所示。
export default {
props: ['title']
}
{{ title }}
接着,我们在页面上引用博文组件,如下代码所示。
import BlogPost from './BlogPost.vue'
export default {
components: {
BlogPost
},
data() {
return {
posts: [
{ id: 1, title: 'My journey with Vue' },
{ id: 2, title: 'Blogging with Vue' },
{ id: 3, title: 'Why Vue is so fun' }
]
}
}
}
运行效果如下图所示:
本例运行内容及效果可在这里查看:传递参数的博文组件
监听事件
有时候,我们不仅希望能往组件中传递参数,也希望父组件能感知子组件的变化。例如:我们希望可以通过子组件来设置父组件的文字大小,从而动态改变文章的文字大小。这时候,我们可以在子组件中使用 $emit()
来触发事件,在父组件使用 @enlarge-text
来监听事件,如下代码所示。
// BlogPost.vue
export default {
props: ['title'],
emits: ['enlarge-text']
}
{{ title }}
如上代码所示,我们在 export default
的 emits
属性中注明了该组件会抛出 enlarge-text
事件。随后,我们在按钮点击时,使用 $emit('enlarge-text')
抛出了 enlarge-text
事件。
import BlogPost from './BlogPost.vue'
export default {
components: {
BlogPost
},
data() {
return {
p服务器托管网osts: [
{ id: 1, title: 'My journey with Vue' },
{ id: 2, title: 'Blogging with Vue' },
{ id: 3, title: 'Why Vue is so fun' }
],
postFontSize: 1
}
}
}
在上述代码中,我们在父组件中使用 @enlarge-text
监听 enlarge-text
事件。当监听到该事件后,我们将 postFontSize 的值加 0.1,从而实现动态改变文字大小的目的。
总结
关于 vue 组件的使用,props 和事件传递可以说是使用最频繁的两个功能。对于更复杂的组件来说,肯定还有更多更复杂的语法和功能。但对于初学者来说,学得够用就行,后续需要时再慢慢学习。关于 vue 组件更多内容,可以参考 vue 官网相关章节:组件基础 | Vue.js
参考资料
- 组件基础 | Vue.js
- 从零开始封装组件(一):功能按钮栏 – 掘金
- 浅尝 | 从 0 到 1 Vue 组件库封装 – 掘金
- 年轻人如何从0到1封装发布一个vue组件 – 掘金
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
进程 程序由指令和数据组服务器托管网成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程序被运行,从磁盘加载这个程序的代码至内存,这…