vue 封装自定义组件
组件结构
sjld
>index.js
>sjid.vue
最好单独放一个文件夹,有依赖的话装依赖
Sjld.vue 内容
<template id="sjld">
<label >
<select v-model="selected" prop="selected" >
<option v-for="option in sheng" :value="option.id" :label="option.name" :key="option.id"> {{option.name}} </option>
</select> <select v-model="selecteds" prop="selecteds">
<option v-for="v in shi" :value="v.id" :label="v.name" :key="v.id"> {{v.name}} </option>
</select> <select v-model="selectedss" prop="selectedss">
<option v-for="n in xian" :value="n.id" :label="n.name" :key="n.id"> {{n.name}} </option>
</select>
<button type="info" @click="tijiao">提交</button>
</label>
</template>
<script>
export default {
data:function(){
return {
shi:[],
xian:[],
selected:'',
selecteds:'',
selectedss:'',
}
},
props:{
citys:Array,
sheng:Array,
},
watch:{
selected:function(val, old){
const self=this;
if(val != old){
self.shi=[];
let upid = self.selected;
let len = self.citys.length;
for (var i = 0; i < len; i++) {
if(self.citys[i].upid == upid){
self.shi.push(self.citys[i])
}
};
}
},
selecteds:function(val, old){
const self=this;
if(val != old){
self.xian=[];
let upid = self.selecteds;
let len = self.citys.length;
for (var i = 0; i < len; i++) {
if(self.citys[i].upid == upid){
self.xian.push(self.citys[i])
}
};
}
},
},
methods:{
getcitys(){
const self=this;
self.citys=JSON.parse(localStorage.getItem('citys'))
self.sheng=JSON.parse(localStorage.getItem('sheng'))
},
tijiao(){
const self=this;
let data={
sheng:self.selected,
shi:self.selecteds,
xian:self.selectedss,
}
self.$emit('change', data);
//console.log(data)
},
},
mounted(){
//this.getcitys();
},
computed: {
}
}
</script>
解释一下:props 父级传给组件的数据 然后用 $emit('方法名',数据) 返回父级数据
index.js 内容

vue 封装自定义组件的更多相关文章
- vue 相邻自定义组件渲染错误正确的打开方式
话不多说看问题: 当封装自定义组件时例如(自定义下拉列表)两个相同的组件在多次v-if变化时偶尔会发生渲染错误,明明赋值正确但是组建中的ajax方法可能返回的数据乱掉,或者其他神逻辑错误. 经过查询发 ...
- 浅析vue封装自定义插件
在使用vue的过程中,经常会用到Vue.use,但是大部分对它一知半解,不了解在调用的时候具体做了什么,因此,本文简要概述下在vue中,如何封装自定义插件. 在开始之前,先补充一句,其实利用vue封装 ...
- vue中自定义组件(插件)
vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: ...
- 【VUE】自定义组件
[VUE]自定义组件 转载: ============================================ ======================================== ...
- 编程小白入门分享五:Vue的自定义组件
前言 上篇博客简单介绍了vue,本篇博客要在对vue有一定了解后,才可以比较容易理解自定义组件.想要封装好一个组件,一定要熟练掌握这三个技能,父组件 -> 子组件传值(props).子组件 -& ...
- 基于Vue封装分页组件
使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} ...
- vue的自定义组件和组件传值
<div id="app"> <div>{{pmessage}}</div> //父组件 <child :message="pm ...
- vue之自定义组件
除了核心功能默认内置的指令外,vue也允许用户注册自定义指令.虽然在vue2.0中,代码复用和抽象的主要形式是组件,但是有些情况下,我们仍需要对普通DOM元素进行底层操作,这个时候就需要用到自定义指令 ...
- vue 封装分页组件
分页 一般都是调接口, 接口为这种格式 {code: 0, msg: "success",…} code:0 data:{ content:[{content: "11& ...
随机推荐
- 异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file
转自:https://blog.csdn.net/myyugioh/article/details/7724915 今天在导入一个工程时,编译并打包到Tomcat后,发现出现java.lang.Uns ...
- form的一个特性
在一个form表单中,若只有一个input,按回车键表单会自动提交,但是当表单中存在多个input时,按回车键不会执行任何操作,这是form表单的一个特性
- CentOS 7安装并设置启动图形桌面
服务器端有时没有安装图形桌面,采用下面的步骤安装gnome桌面,并能够启动后进入图形桌面 1.安装图形环境 #yum grouplist#yum groupinstall 'GNOME Desktop ...
- Luogu P1970 花匠 【线性Dp】 By cellur925
题目描述 Description 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希望剩下的花 ...
- A joke about regular expression
As the old computer science joke goes: “Let’s say you have a problem, andyou decide to solve it with ...
- python系列1_travel
Python__copy copy模块用于对象的拷贝操作.该模块只提供了两个主要的方法:copy.copy与copy.deepcopy,分别表示浅复制与深复制. 浅拷贝(copy):拷贝父对象,不会拷 ...
- phpstudy 集成的mysql 无法启动
问题产生: 安装好phpstudy后,Apache可以启动,Mysql无法启动. 解决方法: 之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQLa服务. 在cmd命令行下输入: ...
- [POI2011]Temperature
Description The Byteotian Institute of Meteorology (BIM) measures the air temperature daily. The mea ...
- 题解报告:hdu 2059 龟兔赛跑
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击—— ...
- Nuget 自定义配置(官网)
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> ...