时间:2021-05-26
写一个vue组件
我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目。如果还不知道怎么用webpack构建一个vue的工程的,可以移步到vue-cli。
一个完整的vue组件会包括一下三个部分:
每个组件都有属于自己的模板,js和样式。如果将一个页面比喻成一间房子的话,组件就是房子里的客厅、卧室、厨房、厕所。如果把厨房单独拿出来的话,组件又可以是刀、油烟机...等等。就是说页面是由组件构成的,而组件也可以是组件构成的。这样就可以非常的灵活,耦合性也非常的低。
先来看看一个组件在不是.vue文件内的写法:
Vue.component('simple-counter', { template: '<div id="inputBox"><input type="text"></div>', data () { // 数据 return { counter: 0 } }, methods: { // 写点方法 }, created () { // 生命钩子 }, computed: { // 计算属性 }})template是用来干嘛的呢?
<template> <div id="inputBox"> <input type="text"> </div></template><!--template就是这个组件的html,也就是下面部分(vue-loader会将template标签下的内容解析出来):--><div id="inputBox"> <input type="text"></div><!-- 对应原生写法的话,就是template内的dom字符串-->js部分
export default { data () { return { counter: 0 } }, methods: { // 方法 }, created () { // 生命钩子 }, computed: { // 计算属性 }}// 在这里很明显js部分就是对应的原生写法内的非template部分了。// export default这个是es6的模块写法,不懂的可以先去了解es6的模块化css部分
<style lang="scss" scoped>...样式</style><!--这里的你可以使用scss(CSS扩展语言)只要安装"sass-loader"和"node-sass"这两个npm包就好了,vue-cli已经配好相关参数了。如果想使用less或其它css扩展语音,只要装好各自的编译包就好了。而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('点击了子组件') } }}</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>总结
以上所述是小编给大家介绍的vue组写一个组件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本来想这一周做一个关于vuex的总结的,但是由于朋友反应说还不知道如何用vue去写一个组件,所以在此写写一篇文章来说明下如何去写vue页面或者组件。vue的核心
分享一个最近写的进度条滑动组件,以前都是用jq写,学会了vue,尝试着拿vue来写觉得非常简单,代码复用性很强!效果图如下:调用组件如下:{{scale*100
vue路由配置以及按需加载模块配置1、首先在component文件目录下写俩组件:First.vue:我是第一个页面exportdefault{name:'fi
这是一个简单的点击图片预览的组件顺便记录一下写组件期间踩的vue中scope的坑~从注册全局组件开始叭!项目目录:模仿elementUI目录结构,目录名是组件名
前言新年第一篇文章,记录一下我前段时间封装的一个vue组件吧。技术需要积累,有时间我把我之前写的还不错的组件都开源出来。并尝试vue和react两种方式的组件封