- 27
- 0
我又一个父组件A和一个子组件B
父组件代码
<div class="item-content">
<Button
style="height:40px;"
type="dashed"
icon="ios-add"
@click="addQuestion">添加问题</Button>
<choose-question
ref="choosequestion"
:showchoosequestion="showChooseQuestion"
:cancelquestion="cancelQuestionId"
@questionlist="getQuestionList"
@cancel="addQuestionCancel" />
<div class="question">
<span
v-for="item in addedQuestionList"
:key="item.id"><em>{{ item.title }}</em>
<Icon
type="ios-close"
color="#666666"
@click="cancelQuestion(item.id)" />
</span>
</div>
</div>
子组件choose-question中 是一个iview的table组件 全选表格所有项目并且点击确定的时候会触发questionlist方法 同时把选中的数据传给父组件,父组件更新 addedQuestionList 的值 从而循环展示出来选择的数据。但是现在我只触发全选的时候 父组件就更新了 addedQuestionList 的值 并没有点确定,全选事件里并没有触发questionlist方法,为什么父组件的addedQuestionList值就被改变了?我跟了断点 看到 vue自己执行了 watch.run方法后 数据就变了,可我也没有 watch addedQuestionList这个方法。
子组件触发全选代码
select (selection) {
this.questionData.push(...selection)
const obj = {}
const l = this.questionData.reduce((cur, item, index) => {
if (!obj[item.id]) {
obj[item.id] = true
cur.push(item)
}
return cur
}, [])
this.questionData = l
}
子组件点击确定代码
ok () {
this.$emit('questionlist', this.questionData)
this.$emit('cancel', false)
}
感谢您的关注,谢谢您的回答。
- 共 0 条
- 全部回答
-
只有回憶而已丶 普通会员 1楼
在 Vue 中,如果你想自动更新父组件的数据,你可以使用 Vue Router。Vue Router 可以帮助你管理路由和状态,从而实现组件间的数据共享。
以下是一个简单的例子,说明如何使用 Vue Router 和 Vue 自动更新父组件的数据:
- 首先,你需要在你的项目中安装 Vue Router。你可以通过npm(Node Package Manager)来安装:
npm install vue-router- 然后,你需要在你的
src文件夹中创建一个名为router.js的文件,然后添加以下代码:
```javascript import Vue from 'vue' import Router from 'vue-router' import Home from './components/Home.vue'
const routes = [ { path: '/', component: Home } ]
const router = new Router({ routes })
export default router ```
这里,我们定义了一个路由
/,并创建了一个名为Home的组件作为子路由。- 在你的
src/components文件夹中创建一个名为Home.vue的文件,然后添加以下代码:
```html
Home
```
这里,我们定义了一个简单的 Vue 组件,它将显示一个
h1标签和一个router-view。- 在你的
src/App.vue文件中,你需要在data属性中设置一个变量来存储父组件的路由数据:
javascript export default { data() { return { routeData: null } }, created() { this.fetchRouteData() }, methods: { fetchRouteData() { this.routeData = this.$router.$route.data } } }这里,我们定义了一个名为
routeData的变量,并在created生命周期钩子中设置它的值。在fetchRouteData方法中,我们将获取父组件的路由数据并将其存储在routeData变量中。- 最后,你需要在你的
main.js文件中注册App.vue组件,并使用this.$router.push方法来导航到父组件:
```javascript import Vue from 'vue' import App from './App.vue' import router from './router'
new Vue({ router, render: h => h(App) }).$mount('#app') ```
这里,我们首先导入 Vue 和
App.vue,然后在router中注册App.vue组件。最后,我们使用this.$router.push方法来导航到父组件。现在,如果你在父组件中改变数据,Vue Router 将自动更新子组件,并显示新的数据。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
