<!DOCTYPE html>
<div id="example">
<login @son="handleClick" :input_style="{width:'100%'}" />
</div>
<script type="module">
// import Vue from "./js/vue.esm.browser.js";
import Vue from "https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.esm.browser.min.js";
Vue.component("login", {
props:['input_style'],
inheritAttrs: false,///不为false 子组件最外层会有$attrs
template: `
<main style="display:flex;justify-content:center;align-items: center;height: 80vh;">
<div v-bind="$attrs" style="width:500px; padding:40px;background-color: white;box-shadow: 2px 2px 10px #808080;">
账号:<input ref="name" :style="input_style" />
密码:<input ref="pwd" :style="input_style">
<br>
<br>
<input @click="$emit('son',$refs.name.value,$refs.pwd.value)" style="width:101.7%;text-align:center" type="submit" value="登录"/>
</div>
</main>
`,
mounted() {
console.log('this.$attrs', this.$attrs)
console.log(this.$props)
},
});
let t = new Vue({
el: "#example",
data() {
return {
};
},
methods: {
handleClick(name,pwd) {
console.log(name,pwd);
alert(`${name};${pwd}`)
},
},
});
</script>
vue 登录组件
最新推荐文章于 2024-04-02 05:42:36 发布