``` import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store'
Vue.config.productionTip = false
const compoent = { props: { // active: Boolean active: { type: Boolean, // 指定类型 // default: true // 默认值,一般有默认值 required: true 则可以去掉。 // default () { return true } // required: true // 指定为必传字段 validator (value) { // 自定义的检查传入的值是否符合条件 return typeof value === 'Boolean' } } }, template: <div> <input type="text" v-model="text"></input> <span v-show="active" @click="handleClick">see me if active</span> </div> , data () { return { text: 0 } }, methods: { handleClick () { this.$emit('touchClick') } } }
new Vue({ el: '#app', components: { compOne:compoent }, template: <div> <comp-one :active="true" @touchClick="handleClick"></comp-one> <comp-one :active="false"></comp-one> </div> , methods: { handleClick () { alert('点击了子组件内部的文字') } } }) ```