<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.47/vue.cjs.js"></script> <script src="../../../vue.config.js"></script> </head> <body> <div id="app"> <p>{{message}}</p> </div> <script> import Vue from 'vue' var app=new Vue({ el : '#app', data : { message : 'hello world' }, template:'<div>{{message}}</div>', created () { this.getIndexHtml() }, methods:{ getIndexHtml() { fetch('index.html') .then(res=>res.text()) .then(html=>{ this.index.Html = html }) } } }) </script> </body> </html>打开网页以后页面没有进行vue渲染
时间: 2024-03-05 12:55:05 浏览: 222
在你的代码中,有两个问题:
1. 在浏览器中无法直接使用 `import` 语法,需要使用 `script` 标签来引入 Vue 库,或者使用打包工具将代码打包成浏览器可识别的代码。因此,你需要将 `import Vue from 'vue'` 改成 `var Vue = window.Vue` 或者引入 Vue 库的 `CDN` 地址。
2. 在 Vue 3.x 版本中,不再支持使用 `template` 属性直接定义模板,需要使用 `render` 函数或者 `.vue` 单文件组件的方式来定义模板。因此,你需要将 `template` 属性的值改成 `render` 函数。
下面是修改后的代码:
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.47/vue.cjs.js"></script>
<script src="../../../vue.config.js"></script>
</head>
<body>
<div id="app">
<p>{{message}}</p>
</div>
<script>
var Vue = window.Vue // 或者使用 Vue 的 CDN 地址来引入 Vue 库
var app=new Vue({
el : '#app',
data : {
message : 'hello world'
},
render(h) { // 使用 render 函数来定义模板
return h('div', this.message);
},
created () {
this.getIndexHtml()
},
methods:{
getIndexHtml() {
fetch('index.html')
.then(res=>res.text())
.then(html=>{
this.index.Html = html
})
}
}
})
</script>
</body>
</html>
```
注意:由于你的代码中还涉及到 `vue.config.js` 文件,因此你需要确认这个文件是否存在并且正确引入。
阅读全文