VS Code插件开发教程--树视图+网页视图--完整demo+图--3

简介

你好!

本人为 2019.7 毕业的应届毕业生,目前从事前端工程师的职业。对知识充满渴望。如果本文中有什么错误的地方,还请各位指正。谢谢。

本文定位为初次接触vs code插件开发的小伙伴,开始有详细的教程如何一步一步的运用基础的插件开发

接下来会用完成的 demo 教大家 treeView 和 webView 的初级完成开发流程。小伙伴耐心跟着代码敲一遍能学会的哈。

先给小伙伴们看一下本文的目录架构:

  • 一、介绍
  • 二、安装
  • 三、初识 VS code 插件 demo
  • 四、treeView: 重识 package.json
  • 五、treeView: 在视图中显示想要的 item
  • 六、创建 webView 并嵌入百度页面
  • 七、不同 item 显示不同的页面(数据传递: VS code -> html)
  • 八、iframe 页面的数据传递指 VS code(iframe -> html -> vscode)

此文章为第三部分,如需从头开始阅读,请移步第一部分第二部分

六、不同 item 显示不同的页面(数据传递: VS code -> html)

现在我们可以起一个 React 或者 Alita 项目

创建好3个页面,命名分别为 pig1, pig2, pig3。当然你要随意命名也可以,只不过这样子会比较方便。

在这里插入图片描述

那么接下来启动 React 或者 Alita 项目。

修改 WebView.ts 文件下的内容

<iframe id='iframe1' class="iframeDiv" src="http://localhost:8000/#/${label}" scrolling="auto"></iframe>

iframe 路径改成项目路径。

那么现在去启动一下插件吧。

是不是发现了一个问题,webView 只展示第一次选中的项,当你切换其他项时,路径并没有改变。这是为什么呢?

因为这里的参数 ${label} 是从 getIframeHtml(label) 方法中传递进来的。

这个方法只有在 webViewPanelundefined 时才执行。所以 ${label} 永远都是创建 webView 时传递进来的参数。

那么现在有没有什么办法将点击事件的参数传递进 html 页面呢?有的。

介绍一个重要的方法

postMessage(message): 将消息发布到webview内容。仅当Webview可见时才会传递消息。

接下来我们将继续修改 WebView.ts 文件

...//此处省略重复代码
if(webviewPanel === undefined) {
   

... //此处省略重复代码

webviewPanel.webview.html = getIframeHtml(label);

} else {
   

    webviewPanel.title =
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值