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 内容

  • 相关阅读:
    Delphi 10.4.2使用传统代码提示方案(auto complete)(转)
    Sqlserver 清除维护相关日志
    postgresql 时间戳自动更新
    sqlserver 修改电脑名或是 修复数据引擎
    postgresql uuid(guid)生成函数及使用
    List.toArray使用方法
    HashMap 1.7与1.8区别
    设计模式之观察者模式实现(JAVA)
    ubuntun下安装rabbitMq
    Java中replace与replaceAll区别
  • 原文地址:https://www.cnblogs.com/qq735675958/p/8527300.html
Copyright © 2011-2022 走看看