0👍
Dr. Harold Hardvard,
I don’t understand but your component is seen wrong.
Try this code please
<div id="LoginApp">
<WJLogin
:csrf="csrf_token"
:hello="world">
</WJLogin>
</div>
<template>
<!-- If it is fixed -->
<div>{{ $props.csrf }}</div>
</template>
<script>
export default {
name: 'W3Login',
props: {
csrf: String
},
// If it will be change.
computed: {
token() {
return this.$prop
}
}
methods: {
If using in any method.
x() {
...
this.$prop.csrf
...
}
}
}
</script>
Example link JsFiddle
0👍
You shouldn’t use v-bind:csrf
since when django render csrf_token
, it will be literal (e.g. not a variable). V-bind
is used to bind object into component prop. So do this:
index.html:
<div id="LoginApp">
<wjlogin
csrf="{{ csrf_token }}"
hello="world">
</wjlogin>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
{% verbatim %}
<script>
Vue.component('wjlogin', {
template: `<div>{{ csrf }}<br/>{{ hello }}</div>`,
name: 'wjlogin',
props: {
csrf: String,
hello: {
type: String,
default: "defaultValue"
},
},
});
new Vue({el: '#LoginApp'})
</script>
{% endverbatim %}
Source:stackexchange.com