<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript" src="../js/dayjs.min.js"></script>
</head>
<body>
<div id="root">
<input type="text" :value="number"> <br>
<button @click="number++">number++</button>
<!-- 3使用组件(局部) -->
<stu></stu>
<stu></stu>
<!-- 使用全局组件 -->
<school></school>
<school></school>
</div>
<script type="text/javascript">
Vue.config.productionTip = false
// 1.定义组件1
const stu = Vue.extend({
template: `
<div>
<h1>姓名:{{studentname}}</h1>
<h1>年龄:{{age}}</h1>
<button @click="show">点我提示姓名</button>
</div>
`,
// data: function () {
// return {
// studentname: 'zhangsan',
// age: 18
// }
// }
data() {
return {
studentname: 'zhangsan',
age: 18
}
},
methods: {
show() {
alert(this.studentname)
}
}
})
//定义组件2
const school = Vue.extend({
template: `
<div>
<h1>学校:{{schoolName}}</h1>
<h1>地址:{{address}}</h1>
</div>
`,
data() {
return {
schoolName: '尚硅谷',
address: '北京'
}
}
})
//注册全局组件2
Vue.component('school', school)
new Vue({
el: "#root",
data: {
number: 10
},
// 2.注册组件1(局部注册)
components: {
stu: stu
}
})
</script>
</head>
</body>
多个单词的写法
定义组件时候的名称,在开发者工具中会把name当作组件名称
定义组件时候可以简写,省略Vue.extend()
<body>
<div id="root">
<school></school>
-----------
<school></school>
</div>
<script type="text/javascript">
Vue.config.productionTip = false
// 定义子组件
const student = Vue.extend({
name: "student",
template: `
<div>
<h1>姓名:{{stuName}}</h1>
<h1>年龄:{{age}}</h1>
</div>
`,
data() {
return {
stuName: 'tom',
age: 18
}
},
})
// 定义父组件
const school = Vue.extend({
name: "school",
template: `
<div>
<h1>学校:{{schName}}</h1>
<h1>地址:{{address}}</h1>
<student></student>
</div>
`,
data() {
return {
schName: '尚硅谷',
address: '北京'
}
},
components: {
student:student
}
})
new Vue({
el:'#root',
components:{
school
}
})
</script>
</head>
</body>
app组件
配置 npm 淘宝镜像:npm config set registry https://registry.npm.taobao.org
npm install -g @vue/cli
vue create xxxx
npm run serve
启动成功
访问
关闭语法检查
这里this代表vc组件
代码
props简写数组形式
数字类型的前面要加 :
可以多个组件重复利用同一代码片段
上面的都是局部的,下面我们使用全局的mixin
定义plugin.js
导入插件
就可以直接使用插件中定义好的过滤器等功能了
安装less-loader6 (要和npm版本对应)
npm i less-loader@6