《孙子·用间》

【原文】孙子曰:凡兴师十万,出征千里,百姓之费,公家之奉,日费千金;内外骚动,
怠于道路,不得操事者七十万家。相守数年,以争一日之胜,而爱爵禄百金,不知敌之情者,
不仁之至也,非人之将也,非主之佐也,非胜之主也。故明君贤将,所以动而胜人,成功出
于众者,先知也。先知者,不可取于鬼神,不可象于事,不可验于度,必取于人,知敌之情
者也。
【译文】孙子说:大凡出兵十万,出征千里,百姓的耗费、公家的开支,每日耗资千金;
国家内外动荡,人们疲惫地奔波于道路,不能安心从事耕作的达七十万家。相持数年来争夺
一朝的胜利,却因吝啬爵禄金银,不愿使用间谍,以至不知敌方情实的人,是不懂仁爱到了
极点啊!这种人,不配为军中统帅,不配为君主的辅臣,也不是胜利的把握者。英明的君主、
贤能的将帅,之所以动辄就能战胜敌人,成功高于一般的人,就在于他们事先了解敌情。要
事先了解敌情,不可从鬼神取得,不可从往事中去类比,也不能用度数去应验,一定只能从
人的口中得知,这种人,就是了解敌情的人。
【原文】故用间有五:有因间,有内间,有反间,有死间,有生间。五间俱起,莫知其道,
是谓神纪,人君之宝也。因间者,因其乡人而用之。内间者,因其官人而用之。反间者,因
其敌间而用之。死间者,为诳事于外,令吾间知之,而传于敌间也。生间者,反报也。
【译文】使用间谍有五种:有因间、有内间、有反间、有死间、有生间。五种间谍一齐使
用,没有谁能知道其中奥秘,这便可称为一条神妙的纲纪,是国君的法宝。所谓因间,就是
利用敌国乡人为间谍;所谓内间,就是利用敌国朝内官员做间谍;所谓反间,就是利用敌方
派来的间谍,使之反过来为我效力;所谓死间,就是故意在外散布假情况,让我方间谍明白
并有意识传给敌间;所谓生间,就是能亲自回来报告敌情的间谍。
【原文】故三军之事,莫亲于间,赏莫厚于间,事莫密于间。非圣智不能用间,非仁义不
能使间,非微妙不能得间之实。微哉!微哉!无所不用间也。间事未发,而先闻者,间与所
告者皆死。
【译文】军中的亲信,没有比间谍更亲密的了;军中的奖赏,没有比对间谍的奖赏更丰厚
的了;军中的机密事务,没有比用间更为机密的了。不是英明睿智的人不能任用间谍;没有
仁义的德行不足以驱使间谍,没有精微神妙的分析判断能力不能得到真实的情报。微妙啊,
微妙啊,无处不用间谍。用间所谋之事未行却先被人知道,间谍以及他所告诉的人都要被处
死。
【原文】凡军之所欲击,城之所欲攻,人之所欲杀,必先知其守将、左右、谒者、门者、
舍人之姓名,令吾间必索知之,必索敌人之间来间我者,因而利之,导而舍之,故反间可得
而用也;因是而知之,故乡间、内间可得而使也;因是而知之,故死间为诳事,可使告敌;
因是而知之,故生间可使如期。五间之事,主必知之,知之必在于反间,故反间不可不厚也。
【译文】凡是要攻击某敌军,夺取某城邑,斩杀敌方某重要人员,一定要事先了解敌方主
管将帅、左右亲信、传达报告的官员、守门的官吏、门客幕僚诸人的姓名,命令我方间谍一
定查探清楚。一定要查出敌方派来的间谍,获得后以重金收买,诱导他为我所用,这样,反
间就可以得到使用了。从反间了解到情况,就能从敌方找到恰当人选,乡间、内间就可得到
使用了。从反间那里了解了情况,死间就可散布假情报,并可让他告诉敌人;由于从反间了
解了情况,避开了危险,生间就可如期回报。五种间谍的情况,主君必须掌握,掌握这些情
况的关键在于反间。所以反间的待遇不能不特别优厚。
【原文】昔殷之兴也,伊挚在夏;周之兴也,吕牙在殷。故惟明君贤将,能以上智为间者,
必成大功。此兵之要,三军之所恃而动也。
【译文】从前,殷代兴起之际,伊挚在夏当间谍;周代兴起之时,姜子牙在殷搜集情报。
因此,明君贤将中,能任用有高超智谋的人为间谍者,一定能成就大的功业。这是用兵的要
务,三军就依靠着这些情报而决定行动啊!

### Vue 中实现孙子组件调用爷爷组件的方法 在 Vue 应用程序中,可以通过多种方式实现在孙子组件内调用爷爷组件中的方法。以下是几种常见的解决方案: #### 使用 Provide/Inject API Provide 和 Inject 是一种父子级传递属性的方式,适用于多层嵌套的情况。 ```javascript // 爷爷组件 (GrandparentComponent.vue) export default { provide() { return { updateTableData: this.updateTableData, }; }, methods: { updateTableData(newData) { console.log('Updating table data with:', newData); // 更新表格逻辑... } } } ``` ```html <!-- 孙子组件 (GrandchildComponent.vue) --> <template> <div @click="callUpdate">点击更新</div> </template> <script> export default { inject: ['updateTableData'], methods: { callUpdate() { const newData = { /* 新数据 */ }; this.updateTableData(newData); // 调用了来自提供者的函数[^1] } } }; </script> ``` #### Event Bus 或者 Vuex Store 对于更复杂的应用场景,可以考虑使用全局事件总线或状态管理库如 Vuex 来处理跨层级通信问题。 ##### 使用 Event Bus 方案 创建一个独立的 eventBus.js 文件来定义事件中心对象: ```javascript import Vue from 'vue'; const EventBus = new Vue(); export default EventBus; ``` 然后分别导入并注册到各个组件中去触发和监听特定事件。 ```javascript // 爷爷组件 (GrandparentComponent.vue) import EventBus from './eventBus'; methods: { mounted() { EventBus.$on('refresh-table', () => { this.refresh(); // 刷新表格操作 }); }, beforeDestroy() { EventBus.$off('refresh-table'); }, refresh() { // 表格刷新逻辑... } } ``` ```javascript // 子组件 (ChildComponent.vue) mounted() { this.$refs.grandchildRef.someMethodInGrandchild(); } ``` ```javascript // 孙子组件 (GrandchildComponent.vue) import EventBus from './eventBus'; methods: { afterUploadSuccess(response) { let payload = response.data; // 假设这是上传成功的返回值 EventBus.$emit('refresh-table'); // 发送刷新请求给祖先节点[^2] } } ``` #### Props and Callbacks 组合模式 如果结构较为简单,则可以直接通过 props 向下传递回调函数,并由子孙组件执行该回调完成交互。 ```javascript // 父亲组件 (ParentComponent.vue) <template> <grand-child :callback="handleRefresh"></grand-child> </template> <script> export default { name: "Parent", methods: { handleRefresh(data){ // 处理接收到的数据, 并通知祖父组件做相应动作 this.$emit('data-updated', data); } } } </script> ``` ```javascript // 孙子组件 (GrandchildComponent.vue) props: ["callback"], methods: { onActionComplete(){ var result = {/* some processed data */} this.callback(result); // 执行父辈传来的回调函数[^3] } } ``` 以上三种方案各有优缺点,在实际项目开发过程中可以根据具体需求选择最合适的办法来进行祖孙的消息互通。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值