是否可以从Vue实例的html标签声明并传递数据属性值,然后在数据对象中使用它?
index.html:
<div id="app" data-title="My app title"></div>
App.vue:
data () {
return {
appTitle: // whatever is declared in data-title
}
}
答案 0 :(得分:1)
是的
data () {
return {
appTitle: document.getElementById('app').dataset.title
}
}
但是,DOM在组件初始化时可能不可用。因此,您可能应该将该代码放入组件的挂接钩子中:
<script>
export default {
data () {
return {
appTitle: null
}
},
mounted () {
this.appTitle = document.getElementById('app').dataset.title
}
}
</script>
答案 1 :(得分:0)
这是另一种方法,它不依赖DOM API,但不能用于从根(#app)元素获取数据属性:
Cookie waitCookie = new Cookie("waitingCookie", "done");
response.addCookie(waitCookie);
答案 2 :(得分:0)
此代码对我有用:
index.html :
<div id="app" data-id="123"></div>
index.js :
(function (el) {
new Vue({
el,
render: h => h(Module),
data: () => Object.assign({}, el.dataset) ,
});
})(document.getElementById('app'));
Module.vue :
export default {
name: 'Module',
data() {
return {
id: this.$parent.id,
};
},
};