zoukankan      html  css  js  c++  java
  • 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 内容

  • 相关阅读:
    CCPC2018-湖南全国邀请赛
    2019中山大学程序设计竞赛
    [POJ]poj1185 炮兵营地(状压DP)
    [CF]Codeforces Round #551 (Div. 2)
    [EOJ]2019 ECNU XCPC April Selection #1
    [现场赛]“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛
    欧拉函数 欧拉筛法 欧拉定理
    [CF]301D Yaroslav and Divisors
    岸芷汀兰的诗集(持续更新)
    模板柱(持续更新)
  • 原文地址:https://www.cnblogs.com/qq735675958/p/8527300.html
Copyright © 2011-2022 走看看