• Vue的引入方式,属性和计数器案例


    在这里插入图片描述


    个人简介
    作者简述:大家好,我是陈春波【花名:水香木鱼】,来自于东北【黑龙江】庆安小城
    CSDN主页水香木鱼
    Blog【Plog】主页陈春波
    支持我:点赞+收藏⭐+留言
    Vue3系列专栏邂逅Vue3
    人生格言:木秀于林风或许会摧,堆高于岸流或许湍,但是,初心不改,奋斗不息。


    1、CDN引入

    <script src="https://unpkg.com/vue@next"></script>

    案例:

    
    <body>
        <div id="app">
    
        </div>
        <script src="https://unpkg.com/vue@next"></script>
        <script>
            //vue相关代码
            const why = {
                template: '<h1>欢迎来到vue3</h1>'
            }
            //将app挂载到id为app的div上
            const app = Vue.createApp(why);
            app.mount('#app')
        </script>
    </body>
    

    2、本地下载与引入

    vue@next 官网

    ①打开官网后ctrl+A 复制源代码

    在这里插入图片描述

    ②本地新建vue3.js

    在这里插入图片描述

    ③将复制的源代码粘贴到vue3.js当中

    在这里插入图片描述

    ④使用

    <body>
        <script src="./js/vue3.js"></script>
    </body>
    

    3、计数器案例

    在这里插入图片描述

    原生写法

    <body>
        <div style="text-align: center;">
            <h1 class="counter">0</h1>
            <button class="increment">+1</button>
            <button class="decrement">-1</button>
        </div>
    
        <script src="./js/vue3.js"></script>
        <script>
            //获取DOM上的所有元素
            const counterEl = document.querySelector('.counter')
            const incrementEl = document.querySelector('.increment')
            const decrementEl = document.querySelector('.decrement')
            //2.定义变量
            let counter = 0;
            counterEl.innerHTML = counter
            //监听按钮点击事件
            incrementEl.addEventListener('click', () => {
                // 加1
                counter += 1;
                counterEl.innerHTML = counter
            })
            decrementEl.addEventListener('click', () => {
                // 减1
                counter -= 1;
                counterEl.innerHTML = counter
            })
        </script>
    </body>
    

    vue写法:

    
    <body>
        <div id="app"></div>
        <script src="./js/vue3.js"></script>
        <script>
            Vue.createApp({
                template: `
                <div style="text-align: center">
                    <h1>{{msg}}</h1>
                    <h1>{{counter}}</h1>
                    <button @click="increment">+1</button>
                    <button @click="decrement">-1</button>
                </div>
                `,
                data: function () {
                    return {
                        msg: 'Hello Word 计算器',
                        counter: 59
                    }
                },
                //定义方法
                methods: {
                    increment() {
                        this.counter += 1
                    },
                    decrement() {
                        this.counter -= 1
                    }
                }
            }).mount('#app')
        </script>
    </body>
    

    4、声明式和命令式:

    原生开发和Vue开发的模式和特点,我们发现是完全不同的,其中涉及到两种不同的编程风格。

    在这里插入图片描述

    • 命令式注重的是:how to do
    • 声明式注重的是:what to do【由框架(机器)完成how 的一个过程】

    在这里插入图片描述

    5、MVVM模型

    MVC和MVVM都是一种软件的体系结构


    ①MVC是Model-View-Controller 的简称【iOS、前端】

    在这里插入图片描述

    ② MVVM 是Model-View-ViewModel 的简称【目前非常流行的架构模式】

    在这里插入图片描述

    【注意:vue 并没有完全遵守MVVM的模型,整个设计是受MVVM的启发】

    6、template 写法一

    在 script 中定义 type="x-template"

    <body>
        <div id="app"></div>
        <script type="x-template"id="sxmy">
            <div style="text-align: center" >
                <h1>{{msg}}</h1>
                <h1>{{counter}}</h1>
                <button @click="increment">+1</button>
                <button @click="decrement">-1</button>
            </div>
        </script>
        <script src="./js/vue3.js"></script>
        <script>
            Vue.createApp({
                template: '#sxmy',
                data: function () {
                    return {
                        msg: 'Hello Word 计算器',
                        counter: 59
                    }
                },
                //定义方法
                methods: {
                    increment() {
                        this.counter += 1
                    },
                    decrement() {
                        this.counter -= 1
                    }
                }
            }).mount('#app')
        </script>
    </body>
    

    7、template 写法二

    使用tamplate标签

    <body>
        <div id="app"></div>
        <template id="sxmy">
            <div style="text-align: center">
                <h1>{{msg}}</h1>
                <h1>{{counter}}</h1>
                <button @click="increment">+1</button>
                <button @click="decrement">-1</button>
            </div>
        </template>
        <script src="./js/vue3.js"></script>
        <script>
            Vue.createApp({
                template: '#sxmy',
                data: function () {
                    return {
                        msg: 'Hello Word 计算器',
                        counter: 59
                    }
                },
                //定义方法
                methods: {
                    increment() {
                        this.counter += 1
                    },
                    decrement() {
                        this.counter -= 1
                    }
                }
            }).mount('#app')
        </script>
    </body>
    

    8、data 属性

    该属性传入一个函数,并且该函数需要返回一个对象

    • Vue2.x 可以传入对象
    • Vue3.x 必须传入一个函数,否则会直接在浏览器中报错

    9、methods属性

    该属性是一个对象,通常我们会在这个对象中定义多个方法

    • 这些方法被绑定到template 模板
    • 该方法中,我们可以使用this 关键字直接访问到data 中返回的对象的属性

    在这里插入图片描述

  • 相关阅读:
    有用网站
    html5页面布局总结
    video和audio支持格式
    关于浏览器缓冲
    java常见面试题汇总
    jvm常用相关参数
    规律字符串拼接
    线程基础知识
    Kafka学习
    Redis学习
  • 原文地址:https://www.cnblogs.com/chenchunbo/p/16395518.html
Copyright © 2020-2023  润新知