IMWeb训练营——select组件
2017-04-21 18:12
232 查看
说到组件,首先要明确的一点就是组件是web页面中的一部分,今天的一个主题就是进行组件化开发。整个是以selec为例的。做出来的效果图如下:
1.打开页面,最开始出现的是这样一个简单的查询框
2.把鼠标放在输入框上会有下拉选项出现:
3.点击下面列表中的内容,输入框也会相应的出现相同的内容:
其中主要的代码如下:
<div id="app">
<custom-select btn-value="查询" v-bind:list="list1"></custom-select>
</div>
<script>
//注册组建
Vue.component("custom-select",{
data:function(){
return {
selectShow:false,
val:"",
};
},
props:["btnValue","list"],
template:`<section class ="warp">
<div class="searchIpt">
<div class="clearFix">
<input type="text" class="keyWord" :value="val" @click="selectShow=!selectShow" />
<input type="button" class="go" v-bind:value="btnValue"/>
<span></span>
</div>
<custom-list
v-show="selectShow"
:list="list"
v-on:receive="changeValueHandle"
></custom-list>
</div>
</section>`,
methods:{
changeValueHandle(value){
this.val=value;
}
}
})
Vue.component("custom-list",{
props:["list"],
template:`<ul class="list">
<li v-for="item of list" @click="selectValueHandler(item)">{{item}}</li>
</ul>`,
methods:{
selectValueHandler:function(item){
//在子组件中有交互
//告知父级,val改变的值,需要触发一个自定义事件
this.$emit("receive",item);
}
}
})
var data = {
list1:["四川","重庆","湖南"]
}
new Vue({
el:"#app",
data:data,
});
</script>
1.打开页面,最开始出现的是这样一个简单的查询框
2.把鼠标放在输入框上会有下拉选项出现:
3.点击下面列表中的内容,输入框也会相应的出现相同的内容:
其中主要的代码如下:
<div id="app">
<custom-select btn-value="查询" v-bind:list="list1"></custom-select>
</div>
<script>
//注册组建
Vue.component("custom-select",{
data:function(){
return {
selectShow:false,
val:"",
};
},
props:["btnValue","list"],
template:`<section class ="warp">
<div class="searchIpt">
<div class="clearFix">
<input type="text" class="keyWord" :value="val" @click="selectShow=!selectShow" />
<input type="button" class="go" v-bind:value="btnValue"/>
<span></span>
</div>
<custom-list
v-show="selectShow"
:list="list"
v-on:receive="changeValueHandle"
></custom-list>
</div>
</section>`,
methods:{
changeValueHandle(value){
this.val=value;
}
}
})
Vue.component("custom-list",{
props:["list"],
template:`<ul class="list">
<li v-for="item of list" @click="selectValueHandler(item)">{{item}}</li>
</ul>`,
methods:{
selectValueHandler:function(item){
//在子组件中有交互
//告知父级,val改变的值,需要触发一个自定义事件
this.$emit("receive",item);
}
}
})
var data = {
list1:["四川","重庆","湖南"]
}
new Vue({
el:"#app",
data:data,
});
</script>
相关文章推荐
- IMWeb训练营作业 - select组件
- IMWeb训练营作业--VUE练习2--select组件
- IMWeb训练营作业——select组件
- IMWeb训练营作业2-SELECT组件
- IMWeb训练营作业-仿select组件
- IMweb训练营作业(二)-select组件创建
- IMWeb训练营作业-完成第一个组件select下拉框组件
- 【IMWeb训练营作业02 select组件】
- 【IMWeb训练营作业】vue demo Select组件
- 【IMWeb训练营作业】作业2 select组件
- IMWeb训练营作业——select
- [IMWeb训练营作业]select组件 20170424
- 【IMWeb训练营作业】【Vue】Select组件
- 【IMWeb训练营作业】select组件
- IMWeb训练营-组件化select选择菜单
- 【IMWeb训练营作业】select 组件
- IMWeb训练营作业-Select
- 【IMWeb训练营作业】select组件
- 【IMWeb训练营作业】 vue练习-组件select
- 【IMWeb训练营作业】Select 组件