vue.js 组件开发经验
2017-02-08 14:36
706 查看
方式一
这种方式是最简单的,把模版与js写在一起,css需要定外的文件定义下面是一个单选框组件的代码(不包括样式代码),其中:
props内都是传入的参数,参数可以在父组件中传入,也可以在html标签中传入
this.$emit('input', !checked); 是抛出事件input的意思,第二个参数是事件的数据
var checkboxtemplate = Vue.extend({ props: ['value','text','disabled'], template: '<div class="s-input s-checkbox" :disabled="disabled" @click="enableClick">' + '<div class="s-checkbox-state checkboxName" v-html="state">' + '</div>' + '<span> {{text}}</span>' + '</div>', components:{ 'child':'' }, data:function(){ return { checkboxOff: '<i class="s-ico s-ico-checkboxOff"></i>', checkboxOn: '<i class="s-ico s-ico-checkboxOn"></i>', checkDisabled: '<i class="s-ico s-ico-checkboxdisabled"></i>', state:'', } }, created:function(){ if(this.disabled){ this.state = this.checkDisabled; } if(this.value){ this.state = this.checkboxOn; } else{ this.state = this.checkboxOff; } }, methods:{ enableClick:function(){ if(this.disabled) return; var checked = this.state == this.checkboxOn; if(checked){ this.state = this.checkboxOff; } else{ this.state = this.checkboxOn; } this.$emit('input', !checked); } } });
下面是注册的代码:
new Vue({ el: '#test', components:{ 'checkboxtemplate22': checkboxtemplate }, data: { aaa: true, }, });
使用方法一:
双向绑定中 :checked="aaa" 通过props传入,通过 @input="aaa = arguments[0]" 传出
<checkboxtemplate22 :value="aaa" @input="aaa = arguments[0]" text="开启启动登录"></checkboxtemplate22>
使用方法二:
直接使用v-model语法糖双向绑定,需要注意的是传入参数一定叫value,事件是v-model支持的input或者其他。
<checkboxtemplate22 v-model="aaa" text="开启启动登录"></checkboxtemplate22>
相关文章推荐
- vue.js表格组件开发的实例详解
- require.js+vue+vue-router+vue-resource开发微信上传图片组件
- vue.js组件开发
- Vue.js组件开发从0到1
- 2018 年你需要知道的 Vue.js 组件库,完善你的应用开发
- vue.js原生组件化开发——父子组件
- vuejs组件开发之手风琴菜单组件实例
- vue.js开发外卖App项目的组件传值总结(七)
- vue.js原生组件化开发(二)——父子组件
- 2018 年你需要知道的 Vue.js 组件库,完善你的应用开发
- Vue.js 父子组件通讯开发实例
- Vue.js弹出模态框组件开发的示例代码
- 2018 年你需要知道的 Vue.js 组件库,完善你的应用开发
- vue.js开发外卖App项目的组件拆分总结(五)
- Vue.js手风琴菜单组件开发实例
- Vue.js组件开发从1到100
- require.js+vue开发微信上传图片组件
- 一个简单的Vue.js组件开发示例
- vue.js原生组件化开发(一)——组件开发基础
- Vue.js组件使用开发实例教程