You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
1.9 KiB

2 years ago
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>VueComponent</title>
<script type="text/javascript" src="../vue.js"></script>
</head>
<body>
<div id="root">
<h1>{{msg}}</h1>
<!-- 第三步:编写组件标签 -->
<xuexiao></xuexiao>
<hr/>
<!-- 第三步:编写组件标签 -->
<xuesheng></xuesheng>
</div>
<script type="text/javascript">
Vue.config.productionTip = false // 组织开发环境提示
// 步骤一: 创建school组件
const school = Vue.extend({
// 组件定义时一定不要写el配置项,el项仅由一个Vue实例配置
// el: '#root',
template: `
<div>
<h2>学校名称:{{schoolName}}</h2>
<h2>学校地址:{{address}}</h2>
<button @click="showName">点我提示学校名</button>
</div>
`,
data() {
return {
schoolName: '尚硅谷',
address: '北京'
}
},
methods: {
showName(){
alert(this.schoolName)
}
}
})
// 步骤一: 创建student组件
const student = Vue.extend({
template: `
<div>
<h2>学生姓名:{{studentName}}</h2>
<h2>学生年龄:{{age}}</h2>
</div>
`,
data() {
return {
studentName: '小强',
age: 18,
}
}
})
// 步骤二:注册组件(全局)
// Vue.component('xuexiao', school)
// Vue.component('xuesheng', student)
// 创建Vue实例
const vm = new Vue({
el: '#root',
// 步骤二: 注册组件(局部注册)
components: {
xuexiao: school,
xuesheng: student
},
data: {
'msg': 'Hello Every One!'
}
})
</script>
</body>
</html>