zoukankan      html  css  js  c++  java
  • 父组件传值给子组件

    父组件【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>
  • 相关阅读:
    快递全面实名制 再也见不到这些奇葩收件名
    遇到难题了,程序员们快来想个办法吧
    我为什么不鼓励所有的程序员写博客?
    如何选择编程语言?
    单机版FastDFS+nginx文件服务器搭建
    质量缩放
    abaqus应力云图
    冷镦钢 Kaltstauchstahl 易切削钢 Automatenstahl
    Latente Wärme
    Unterschied der Wärmedurchgang und Wärmeübergang
  • 原文地址:https://www.cnblogs.com/dudu123/p/10232859.html
Copyright © 2011-2022 走看看