Chrome扩展内容脚本中的Vue.js
我试图在chrome扩展的内容脚本中使用Vue.js 3 在这里,我在呈现的网页(例如google.com)上创建元素: content script.jsChrome扩展内容脚本中的Vue.js,vue.js,google-chrome-extension,vuejs3,Vue.js,Google Chrome Extension,Vuejs3,我试图在chrome扩展的内容脚本中使用Vue.js 3 在这里,我在呈现的网页(例如google.com)上创建元素: content script.js let element=document.querySelector('h1#title')) 元素insertAdjacentHTML('afterend','COUNTER:{{COUNTER}}'); 在这里,我创建了Vue应用程序: 从“vue”导入{createApp} 常数计数器应用={ 数据(){ 返回{ 柜台:0 } },
let element=document.querySelector('h1#title'))
元素insertAdjacentHTML('afterend','COUNTER:{{COUNTER}}');
在这里,我创建了Vue应用程序:
从“vue”导入{createApp}
常数计数器应用={
数据(){
返回{
柜台:0
}
},
安装的(){
设置间隔(()=>{
这个柜台++
}, 1000)
}
}
createApp(CounterApp).mount(“#counter”)
console.log(计数器应用程序)
但在网页中,它会显示COUNTER:{{COUNTER}},而不实际填充内容
在控制台中:
{模板:“↵ 计数器:{{Counter}}↵“,_-props:Array(0),_-emits:null,data:ƒ,mounted:ƒ}
我无法在chrome应用程序上下文中测试这一点,但我认为这应该可以解决让Vue变量渲染的问题 模板需要使用Vue代码,而不是内容脚本代码。当它被插入DOM时,Vue插入
this.counter
值已经太晚了
content-script.js
在内容脚本中,只需添加空的#计数器
div
let element=document.querySelector('h1#title'))
元素。插入相邻的TML('afterend','');
Vue应用程序
然后在应用程序代码中添加一个.render()
函数,将值插入到字符串中(并使用h()将其转换为VNode
)
render(){
返回h(标签、道具、填充器)
}
因此,如果要使用插入的字符串模板计数器:{{this.COUNTER}}
呈现
标记,请尝试:
import{createApp,h}from'vue'//您是否通过vue cli使用样板创建了扩展,如果不是,则需要在index.html中包含vue库。它是chrome扩展中的内容脚本。我没有index.html,如何包含它?没有,我没有使用vue cli如果没有,则默认情况下不包含vue库您需要将其包含在内容脚本中您可以使用vue cli check post创建扩展项目。