父组件传值给子组件

父组件【tuwen - ftjbpage.vue】

 Html 代码:调用子组件

<ftjbsendView :active="collectActive"  :scriptid="scriptid"  ref="sendView"></ftjbsendView>

 

父组件js

<script>
    import ftjbsendView from './ftjbsendView';
    import Cookies from 'js-cookie';
export default { name: "ftjbpage", data(){ return{ pid: this.$route.query.id, scriptid: '',// 传递给子组件 案件详情id collectActive: ''// 传递给子组件 标识收藏icon 是否已收藏 (1:收藏 0 未收藏) } }, created(){
       //页面初始化 滚动到头部 document.documentElement.scrollTop
=0; document.body.scrollTop=0; }, methods:{//请求接口 脚本详情 _getdetail(){ getscriptdetail( { parent_category_id: this.pid,.....}, { token:Cookies.get('token'), platform: 'web' } ).then((res)=>{ if(res.content !==undefined){ this.detail = res; this.scriptid = res.id; if(res.collect === 0){ this.collectActive = false; }else if(res.collect===1){ this.collectActive = true; } //通过refs.sendView 调用子组件方法changeActive =>为字段重新赋值 this.$refs.sendView.changeActive(this.collectActive); }else{ alert('未找到案情脚本,请重新选择'); } }) }, }, components:{ ftjbsendView, //声明子组件 } } </script>

 

子组件需要父组件传来2个参数,1个是active:bool,bool值,这个初始化的时候传来一次,后续在父组件中动态改变值后还需要再传一次,父组件中通过给组件声明名字

子组件html

  <template>
        <div class="footer" v-show="fav_send">
            <div class="fav" @click="do_fav">
                <i :class="{active:bool}"></i>  ----1
                <span>收藏</span>
            </div>
        </div>
  </template>

子组件script

<script>
    import axios from 'axios';
    import Cookies from 'js-cookie';

    export default {
        name: "ftjbsendView",
        props:['scriptid','active'],  ---2   子组件通过props可以接收父组件传递来的数据,子组件就可以直接使用
        data(){
            return{
                bool:'',
            }
        },
        methods:{
            changeActive(val){
                this.bool = val;
            },
            _postIsLike(){
                if(this.scriptid !== '') {
                    axios.post("http://xxx/api/script/collect?",
                        {
                            'id': this.scriptid,    ----3 使用父组件传递来的数据
                            'uid': Cookies.get('id')
                        },
                        {
                            headers: {'token': Cookies.get('token'), 'platform': 'web'}
                        }
                    ).then((is) => {
                        if (is.data.code === 200) {

                            alert(is.data.data.msg);

                        } else if (is.data.code === 401) {
                            alert('未登录')
                        } else if (is.data.code === 403) {
                            alert('未授权')
                        } else if (is.data.code === 422) {
                            alert('验证失败信息')
                        } else if (is.data.code === 500) {
                            alert('系统错误')
                        }
                    })
                }else{
                    alert('请选择');
                }
            },
            
        }
    }
</script>

 

posted @ 2019-01-07 13:57  Du.Du  阅读(1308)  评论(0编辑  收藏  举报