vue.js - 这两个非常基本的 vue 应用程序有什么区别?
问题描述
我一直在学习 Vue.js,我试图让根实例不删除我放入的 html 内容。我的想法是我可以有一个普通的 html 页面,而 Vue “监视”主包装器,如果它遇到一个 vue 组件,它将由 vue 呈现。当我导入 vue 的 CDN 而不是使用 vue cli 时,我设法做到了这一点。我不明白其中的区别。
我通过cdn制作了这个codepen加载vue.js,它渲染没有问题
<div id="app">
<h1>My Vue.js App</h1>
<p>{{ message }}</p>
</div>
new Vue({
el: '#app',
data: {
message: 'Hello world'
}
});
https://codepen.io/cvallee/pen/dLKVEP
但是在使用 vue cli 的代码沙箱中,没有渲染任何内容,根元素的内容会闪烁然后从 dom 中消失。无论我在主 div 中放入什么,它都会在应用安装后立即被删除。https://codesandbox.io/s/m5qvm40nkx
解决方案
我认为这个问题与 CodeSandbox 加载 Vue 应用程序并触发初始渲染的方式有关。如果添加一个 App.vue 文件并将 main.js 文件更改为
import Vue from "vue";
import App from "./App.vue";
// Vue.config.productionTip = false;
new Vue({
el: "#app",
render: h => h(App)
});
和 index.html 到
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title>codesandbox</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
它以这种方式对我有用。这是工作版本 - https://codesandbox.io/s/84ox08k24j
推荐阅读
- javascript - 使用 Axios 客户端将数据向下传递到子组件时出错
- python - 如何使用基于两个 DataFrame 中匹配值的值将列添加到 pandas DataFrame
- mysql - 如何在 mysql 中进行嵌套案例?
- c - C中的输入和输出问题
- python - 如何正确检查数据框列中是否包含“False”
- python - PyCharm 外部工具似乎没有调用项目解释器
- python - 无法从 DenseVariational 获得合理的结果
- python - 如何使用 minio python sdk 将一个文件夹复制到另一个文件夹中?
- c# - 下面的 .Zip 方法有什么问题
- flutter - Flutter Widget Rebuild Stats 未显示小部件的详细信息