Vue基础知识(一)

一、初始Vue

Hello小案例:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!--
        初识vue:
        1. 想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象;
        2. root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法;
        3. root容器里的代码被称为【Vue模板】;
    -->

    <!-- 准备好一个容器 -->
    <div id="root">
        <!-- <h1>Hello,????</h1> -->
        <h1>Hello,{{name}}</h1>
    </div>
    <script type="text/javascript">
        Vue.config.productionTip = false; //阻止 vue 在启动时生成生产提示。

        //创建Vue实例
        const x = new Vue({
            el:'#root',//el:element,用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
            data:{ //data用于存储数据,数据供el所指定的容器去使用,值暂时先写成一个对象。
                name:'你好!'
            }
        })
    </script>
</body>
</html>

分析Hello案例:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        1.Vue实例和容器是一一对应的;
        2.真实开发中只有一个Vue实例,并且会配合着组件一起使用;
        3.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性;
        4.一旦data中的数据发生改变,那么模板中用到该数据的地方也会自动更新;
     -->
    <!-- 
        注意区分:js表达式和js代码(语句)
        1. 表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方:
        (1). a
        (2). a+b
        (3). demo(1)
        (4) x === y ? 'a' : 'b'
        2. js代码(语句)
        (1) if(){}
        (2) for(){}
     -->

    <!-- 准备好一个容器 -->
    <div class="root">
        <!-- <h1>Hello,????</h1> -->
        <h1>Hello,{{name}},{{address}},{{1+1}},{{Date.now()}}</h1>
    </div>

    <div class="root">
        <!-- <h1>Hello,????</h1> -->
        <h1>Hello,{{name}}</h1>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false; //阻止 vue 在启动时生成生产提示。

        //创建Vue实例
        new Vue({
            el:'.root',//el:element,用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
            data:{ //data用于存储数据,数据供el所指定的容器去使用,值暂时先写成一个对象。
                name:'你好!'
            }
        })

        new Vue({
            el:'.root',//el:element,用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
            data:{ //data用于存储数据,数据供el所指定的容器去使用,值暂时先写成一个对象。
                address:'广州从化'
            }
        })
    </script>
</body>
</html>

二、模板语法

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        Vue模板语法有2大类:
        1. 插值语法:{{}}
        功能:用于解析标签中标签体的内容
        写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。
        2. 指令语法:v-xxx
        功能:用于解析标签,标签内容,以及一些特殊属性(包括:标签属性、标签体内容、绑定事件。。。。。。)
        举例:v-bind:href="xxx" 或简写为::href="xxx",xxx同样要写js表达式,且可以直接读取到data中的所有属性。
        备注:Vue中有很多的指令,且形式都是:v-????。
     -->

    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>插值语法</h1>
        <h3>你好,{{name}}</h3>
        <hr/>
        <h1>指令语法</h1>
        <a href="{{url}}">点我去百度1</a>
        <a v-bind:href="url">点我去百度2</a>
        <a v-bind:href="url" v-bind:x="hello">点我去百度2</a>
        <a :href="url">点我去百度3</a>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false; //阻止 vue 在启动时生成生产提示。

        new Vue({
            el:'#root',
            data:{ 
                name:'jack',
                url:'https://www.baidu.com',
                hello:'你好'
            }
        })
    </script>
</body>
</html>

三、数据绑定

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>
    <!-- 
        Vue中有2种数据绑定的方式:
        1.单向数据绑定:数据只能从data流向页面
        2.双向数据绑定:数据不仅能从data流向页面,还可以从页面流向data
        v-bind:value="name"  单向数据绑定
        v-model="name"  双向数据绑定
        v-model:x="name"  双向数据绑定,x是自定义参数,用于接收name的值
        备注:1.双向绑定一般都应用在表单类元素上(如:input、select等)
        2.v-model:value可以简写为v-model,因为v-model默认收集的就是value值。
     -->
    <!-- 准备好一个容器 -->
    <div id="root">
        单向数据绑定:<input type="text" v-bind:value="name">
        <br>
        双向数据绑定:<input type="text" v-model="name">
        <br>
        <!-- 如下代码是错误的,因为v-model只能用于表单类元素上(输入类元素) -->
        <h2 v-model:x="name">你好啊</h2>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false; //阻止 vue 在启动时生成生产提示。

        new Vue({
            el: '#root',
            data: {
                name: '张三'
            }
        })
    </script>
</body>
</html>
相关推荐
小poop1 小时前
CSS 基础与实战:从入门到精通网页美化
前端
Csvn2 小时前
运行时性能
前端
Never_every993 小时前
位图转矢量工具哪个好?实测抠抠图AI位图转矢量工具
大数据·前端
paopaokaka_luck4 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
空中湖4 小时前
用 React 写数据大屏:为什么我不建议用图表库
前端·react.js·前端框架
欣欣之王来了6 小时前
原始HTML插值:v-html指令的使用与安全风险
前端·学习·架构·项目·vue3教程
IT_陈寒6 小时前
Redis的LRU淘汰策略坑了我一整天
前端·人工智能·后端
计算机魔术师6 小时前
砍半价格、参数再涨,国产旗舰追到 Opus 鼻尖了
前端
paopaokaka_luck6 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
特立独行的猫A6 小时前
10 MB 的桌面 AI 客户端:用仓颉 + 系统 WebView 替代 Electron
前端·harmonyos