62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
 * @Author: Kane
 | 
						|
 * @Date: 2022-11-18 16:07:50
 | 
						|
 * @LastEditors: Kane
 | 
						|
 * @LastEditTime: 2022-11-18 16:27:14
 | 
						|
 * @FilePath: \car_dealer\vue\自定义组件\component.html
 | 
						|
 * @Description: 
 | 
						|
 * 
 | 
						|
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
						|
-->
 | 
						|
<!DOCTYPE html>
 | 
						|
<html lang="en">
 | 
						|
    <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>自定义组件</title>
 | 
						|
        <link rel="stylesheet" href="../../css/root.css" />
 | 
						|
        <link rel="stylesheet" href="../../css/normalize.css" />
 | 
						|
        <link rel="stylesheet" href="../../css/app.css" />
 | 
						|
    </head>
 | 
						|
    <body>
 | 
						|
        <div class="content">
 | 
						|
            <div id="app">
 | 
						|
                <my-component title="测试" v-model="count"></my-component>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </body>
 | 
						|
    <script src="../../js/vue/vue.global.js"></script>
 | 
						|
    <script>
 | 
						|
        const root = {
 | 
						|
            data() {
 | 
						|
                return {
 | 
						|
                    count: 0,
 | 
						|
                    value: "",
 | 
						|
                };
 | 
						|
            },
 | 
						|
        };
 | 
						|
        const component = {
 | 
						|
            template:
 | 
						|
                "<div><button @click='doClick($event)'>{{title}}</button></div>",
 | 
						|
            props: ["title", "modelValue"],
 | 
						|
            data() {
 | 
						|
                return {
 | 
						|
                    count: 0,
 | 
						|
                };
 | 
						|
            },
 | 
						|
            methods: {
 | 
						|
                doClick(event) {
 | 
						|
                    this.count++;
 | 
						|
 | 
						|
                    this.$emit("update:modelValue", this.count);
 | 
						|
                },
 | 
						|
            },
 | 
						|
        };
 | 
						|
 | 
						|
        const vm = Vue.createApp(root);
 | 
						|
        vm.component("my-component", component);
 | 
						|
        vm.mount("#app");
 | 
						|
    </script>
 | 
						|
</html>
 |