vue3特性(一)

1.vue3特性

vue的引入方式

  1. cdn引入

示例代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h2>哈哈哈</h2>
    <p>我是内容,呵呵呵</p>
    <div id="app"></div>

    <!-- cdn引入 -->
    <script src="https://unpkg.com/vue@next"></script>
    <script>
        // 使用Vue
        const app = Vue.createApp({
            template:`<h2>Hello World</h2><span>呵呵呵</span>`
        })
        // 挂载
        app.mount("#app");
    </script>
</body>
</html>
  1. 本地引入
    示例代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
    <script src="./lib/vue.js"></script>
    <script>
        var app = Vue.createApp({
            template:'<h1>哈哈哈</h1>'
        })
        app.mount("#app")
    </script>
</body>
</html>

数据展示

  1. 字符串
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
    <script src="./lib/vue.js"></script>
    <script>
        const app = Vue.createApp({
            template:'<h2>{{message}}</h2>',
            data:function(){
                return {
                    title:"hello world",
                    message:'你好,vue3'
                }
            }
        })
        app.mount("#app")
    </script>
</body>
</html>
  1. 列表数据
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
    <script src="./lib/vue.js"></script>
    <script>
        const app = Vue.createApp({
            template:`
                <h2>电影列表</h2>
                <ul>
                    <li v-for="item in movies">{{item}}</li>
                </ul>
            `,
            data:function(){
                return {
                    message:"你好啊,李银河",
                    movies:['大话西游','星际穿越']
                }
            }
        })

        app.mount("#app")
    </script>
</body>
</html>
  1. 计数器
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app"></div>
    <script src="./lib/vue.js"></script>
    <script>
        const app = Vue.createApp({
            template:`
            <h2>当前计数器:{{counter}}</h2>
            <button @click="increment">+1</button>
            <button @click="decrement">-1</button>
            `,
            data:function(){
                return {
                    counter:0
                }
            },
            methods:{
                increment:function(){
                    this.counter++
                },
                decrement:function(){
                    this.counter--
                }
            }
        })
        app.mount("#app")
    </script>
</body>
</html>
  1. 计数器(重构)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h2>当前计数器:{{counter}}</h2>
        <button @click="increment">+1</button>
        <button @click="decrement">-1</button>
    </div>
    <script src="./lib/vue.js"></script>
    <script>
        const app = Vue.createApp({
            data:function(){
                return {
                    counter:0
                }
            },
            methods:{
                increment:function(){
                    this.counter++
                },
                decrement:function(){
                    this.counter--
                }
            }
        })
        app.mount("#app")
    </script>
</body>
</html>
  1. 原生dom计数器实现(命令式编程实现)
    vue是声明式编程思想,原生是命令式编程思想。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <!-- 命令式编程和声明式编程 -->
    <h2>当前计数:<span class="counter"></span></h2>
    <button class="add">+1</button>
    <button class="sub">-1</button>
    <script>
        // 获取dom
        const h2El = document.querySelector("h2")
        const counterEl = document.querySelector(".counter")
        const addBtnEl = document.querySelector(".add")
        const subBtnEl = document.querySelector('.sub')
        // 2.定义一个变量记录数据
        let counter = 10
        counterEl.textContent = counter
        // 2.监听按钮的点击
        addBtnEl.onclick = function(){
            counter++
            counterEl.textContent = counter
        }
        subBtnEl.onclick = function(){
            counter--
            counterEl.textContent = counter
        }
    </script>
</body>
</html>


  1. options选项-data属性选项的详解
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
    <div id="app">
        <h2>{{message}}</h2>
        <button @click="changeMessage">改变message的值</button>
    </div>

    <script src="./lib/vue.js"></script>
    <script>
        const app = Vue.createApp({
            data(){
                return {
                    message:"hello"
                }
            },
            methods:{
                changeMessage:function(){
                    this.message = "你好,世界";
                }
            }
        })
        app.mount("#app")
    </script>
</body>
</html>
  1. options_method属性选项
    注意method中方法不可以使用箭头函数
    示例代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h2>当前计数:{{counter}}</h2>
        <button @click="increment">+1</button>
        <button @click="decrement">-1</button>
    </div>
    <script src="./lib/vue.js"></script>
    <script>
        const app = Vue.createApp({
            data:function(){
                return {
                    counter:0
                }
            },
            methods:{
                increment:function(){
                    this.counter++;
                },
                // es6写法
                increment(){

                },
                // es6的箭头函数
                increment:()=>{

                },
                decrement:function(){
                    this.counter--;
                }
            }
        })

        app.mount("#app")
    </script>
</body>
</html>

VsCode生成代码片段

  1. 第一步,复制自己要生产的代码;
  2. 第二部,https://snippet-generator.app/在该网站中生成代码片段;
  3. 第三步,在VsCode中配置代码片段;设置-》首选项-》配置用户代码片段
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.vue3特性 vue的引入方式 cdn引入 示例代码 本地引入示例代码 数据展示 字符串 列表数据 计数器 计...
    小张学习笔记阅读 38评论 0 1
  • 本文整理来自深入Vue3+TypeScript技术栈-coderwhy大神新课[https://ke.qq.com...
    Imkata阅读 4,489评论 1 0
  • setup() 函数是 vue3 中,专门为组件提供的新属性。它为我们使用 vue3 的 Composition ...
    幸宇阅读 3,106评论 0 0
  • 2020是一个不平凡的一年;小时候,哭是我们解决问题的绝招;长大后,笑是我们面对残酷现实的武器。所有产业的大环境都...
    皇甫贝阅读 7,063评论 0 1
  • 我们把vue3 和 vue2 的项目进行对比来去说明 main.js 通过 按需导入的 createApp 方法来...
    wyc0859阅读 5,254评论 0 0

友情链接更多精彩内容