我可以在 vuejs 挂载元素上使用 index.html 文件的属性吗?
Am I able to use properties on the index.html file on the vuejs mount element?
<!DOCTYPE html>
<html lang="">
<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><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript>
<div id="app" thisIsAProp="This is what I need"></div>
<!-- built files will be auto injected -->
</body>
</html>
所以在我的 main.js 文件中,应用程序安装在 #app 上。在我的 App.js 文件中,我需要 <div id="app">
元素的属性。我尝试使用适用于基本应用程序的网络组件,但另一个要求是我需要能够覆盖父网页中的 CSS 变量,并且在创建网络组件时,vue 使用阴影创建它们 - dom。有没有更好的方法从vue挂载元素中获取值?
可以使用全局变量将数据从页面传递到入口点:
<script>
window.myApp = {
foo: 'bar'
}
</script>
<div id="app"></div>
并在应用程序内部访问 window.myApp.foo
。
任意字符串数据(包括JSON)可以通过HTML属性传递,data
属性通常用于此目的:
<div id="app" data-foo="bar"></div>
并在应用程序内部访问 document.querySelector('#app').dataset.foo
。
解决了我的问题
我能够使用
从 index.html 安装到我的 App.vue 文件中获取属性
beforeMount() {
this.neededData = this.$parent.$el.getAttribute("thisIsAProp");
},
<!DOCTYPE html>
<html lang="">
<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><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
properly without JavaScript enabled. Please enable it to
continue.</strong
>
</noscript>
<div id="app" thisIsAProp="This is what I need"></div>
<!-- built files will be auto injected -->
</body>
</html>
所以在我的 main.js 文件中,应用程序安装在 #app 上。在我的 App.js 文件中,我需要 <div id="app">
元素的属性。我尝试使用适用于基本应用程序的网络组件,但另一个要求是我需要能够覆盖父网页中的 CSS 变量,并且在创建网络组件时,vue 使用阴影创建它们 - dom。有没有更好的方法从vue挂载元素中获取值?
可以使用全局变量将数据从页面传递到入口点:
<script>
window.myApp = {
foo: 'bar'
}
</script>
<div id="app"></div>
并在应用程序内部访问 window.myApp.foo
。
任意字符串数据(包括JSON)可以通过HTML属性传递,data
属性通常用于此目的:
<div id="app" data-foo="bar"></div>
并在应用程序内部访问 document.querySelector('#app').dataset.foo
。
解决了我的问题
我能够使用
从 index.html 安装到我的 App.vue 文件中获取属性 beforeMount() {
this.neededData = this.$parent.$el.getAttribute("thisIsAProp");
},