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

  • 相关阅读:
    ROS2概述和实践入门
    ROS2与FastRTPSROS2与FastRTPS
    RoboWare Studio已经停更
    ubuntu20.04 Roboware安装遇到的问题
    Ubuntu16.04安装ROS2
    拥抱ROS2系列:ROS2概述和实践入门(一)
    clash for Linux安装使用
    Ubuntu 安装RoboWare
    Ubuntu 18.04 安装VSCode
    开源ImageFilter库For IOS源码发布
  • 原文地址:https://www.cnblogs.com/qq735675958/p/8527300.html
Copyright © 2011-2022 走看看