Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在vue electron中,如何在父组件和子组件之间绑定数据?_Reactjs_Vue.js_Electron Vue - Fatal编程技术网

Reactjs 在vue electron中,如何在父组件和子组件之间绑定数据?

Reactjs 在vue electron中,如何在父组件和子组件之间绑定数据?,reactjs,vue.js,electron-vue,Reactjs,Vue.js,Electron Vue,我试图通过理解完成的代码来学习electron vue。 对于源代码,我使用的是Eplee,它是一个用vue js+electron构建的epub阅读器 这里是指向Eplee的源链接。 书签 {{node.label} 导出默认值{ 名称:“书签菜单”, 道具:{ 书签:{ 默认值:()=>{}, 类型:数组, }, 主题:{ 默认值:'default', 类型:字符串, } }, 方法:{ addBookmark(){ 这是。$emit('add-bookmark'); }, 移除书签(数

我试图通过理解完成的代码来学习electron vue。 对于源代码,我使用的是Eplee,它是一个用vue js+electron构建的epub阅读器 这里是指向Eplee的源链接。


书签
{{node.label}
导出默认值{
名称:“书签菜单”,
道具:{
书签:{
默认值:()=>{},
类型:数组,
},
主题:{
默认值:'default',
类型:字符串,
}
},
方法:{
addBookmark(){
这是。$emit('add-bookmark');
},
移除书签(数据){
此.$emit('remove-bookmark',data);
},
onNodeClick(数据){
这是。$emit('node-click',data);
}
}
}
我不明白这里的数据是如何绑定的

比如说,,
当有一个点击

  • 它触发bookmark menu.vue的
    addBookmark
    方法

  • addBookmark
    方法触发父组件的
    'add-bookmark'

  • 但是,
    只是为了样式而添加的类,而不是父组件

    对于vue和react,我认为为了从不同的文件导入组件并正确放置它们,我需要放置两个东西

  • 进口线
  • 安置线
  • 问题1: 这是正确的进口方式吗?或者你只需要1个。进口线

    问题2: 那么,在vue electron中,如何在父组件和子组件之间绑定数据

    我假设文件结构器会处理它

    Electron只是web应用程序的运行时

    看看Vue.js的事件模型

    另外,请查看组件指南

    就你而言

    只是为了设计样式而添加的类,而不是父组件

    它不是父组件,而是
    组件的子组件。里面可能有任何东西

    this.$emit('add-bookmark')
    方法触发组件的事件侦听器(如果有的话),该组件将
    作为子组件


    例如

    嘿,你说得对。这就是为什么我感到困惑。如果您仔细查看源代码,就不会有类似于
    的东西。有-克洛奇科,我明白我的错误了。childComponent=“parentComponent”,而不是“parentComponent”=childComponent和Vue不需要我像parentsComponent一样包装,谢谢!
    <!-- BookmarkMenu.vue -->
    
    <template>
        <el-popover :popper-class="`popper ${theme}`" width="350" trigger="hover">
            <div class="el-popover__title">
                Bookmarks
                <el-button size="mini" icon="el-icon-plus" circle @click="addBookmark" />
            </div>
            <el-button slot="reference" size="small" icon="el-icon-collection-tag" circle />
            <el-tree :data="bookmarks" node-key="id" @node-click="onNodeClick">
                <span slot-scope="{ node }" class="custom-tree-node">
                    <span>{{ node.label }}</span>
                    <span>
                        <el-button type="text" icon="el-icon-close" @click="() => removeBookmark(node)" />
                    </span>
                </span>
            </el-tree>
        </el-popover>
    </template>
    
    <script>
    export default {
        name: 'BookmarkMenu',
        props:{
            bookmarks:{
                default:()=>{},
                type: Array,
            },
            theme:{
                default:'default',
                type:String,
            }
        },
        methods:{
            addBookmark(){
                this.$emit('add-bookmark');
            },
            removeBookmark(data){
                this.$emit('remove-bookmark',data);
            },
            onNodeClick(data){
                this.$emit('node-click',data);
            }
        }
    }
    </script>
    
    <style lang="scss" scoped>
    
    </style>