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

  • 相关阅读:
    C#中使用MATLAB
    各种插值法及效果图对比
    Visual Studio中你所不知道的智能感知
    C#中使用Surfer
    XCode中连接使用GitHub
    个人作业Week1
    个人作业Week3
    个人作业Week2
    第一次作业——subway
    执行ajax加载页面中的js总结
  • 原文地址:https://www.cnblogs.com/qq735675958/p/8527300.html
Copyright © 2020-2023  润新知