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 中返回的对象的属性

在这里插入图片描述

posted @ 2022-06-21 08:44  水香木鱼  阅读(83)  评论(0编辑  收藏  举报