美文网首页
vue -- 搭建环境,模板语法,数据绑定

vue -- 搭建环境,模板语法,数据绑定

作者: 像我这么帅的一般都是主角 | 来源:发表于2022-07-20 16:15 被阅读0次

    用script的方式创造一个vue项目

    在官网下载vue.js,以如图所示的方式部署


    image.png

    创建第一个vue应用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="app">
            <!-- 输出 {{ 变量 }} -->
            {{ message }} {{ name }}
        </div>
        <script type="text/javascript">
            var app = new Vue({
                el:'#app',
                data:{
                    message:'hello vue',
                    name: 'haha'
                }
            });
        </script>
    </body>
    </html>
    
    • 想让vue工作,必须创建一个vue实例,而且要传入一个配置对象
    • root容器里的代码依然符合html规范,只不过混入了一些特殊的vue语法
    • root容器里的代码被称为vue模板
    • vue实例和容器是一一对应的
    • 真实开发中只有一个vue实例,并且会配合着组件一起使用
    • {{ xxx }}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性
    • 一旦data中的数据发生改变,那么模板中用到该数据的地方也会自动更新

    注意区分js表达式和js代码(语句)

    1. 表达式:一个表达式会生成一个值,可以放在任何一个需要值的地方
    • a
    • a+b
    • demo(1)
    • x === y ? 'a' : 'b'
    1. js代码
    • if(){}
    • for(){}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="app">
            <!-- 准备好一个容器 -->
            <div id="root">
                <h1>im {{ name }}</h1><br>
                <h1>my age is {{ age }}</h1>
            </div>
        </div>
        <script type="text/javascript">
            Vue.config.productionTip = false //阻止vue在启动是生成生产提示
            //创建vue实例
            const x = new Vue({
                el :'#root', // el用于指定当前vue实例为那个容器服务,值通常为css选择器字符串
                data:{ //data 用于存储数据 数据供el所指定的容器去使用 值先先写成一个对象
                    name:'madison',
                    age:22
                }
    
            })
            //配置对象
            // axios({
            //     url:''
            // })
        </script>
    </body>
    </html>
    

    vue模板语法

    vue 模板语法有2大类:

    1. 插值语法
    • 功能:用于解析标签体内容。
    • 写法:{{ xxx }}。xxx是js表达式,且可以直按读取到data中的所有属性
    1. 指令语法
    • 功能:用于解析标签(包括:标签属性、标签体内容、绑定事件...)
    • 举例:v-bind:href="xxx” 或 简写为 :href="xxx",xxx同样要写is衣达式。 且可以直接读取到data中的所有属性。
    • 备注:vue中有很多的指令,且形式都是:V-??,此处我们是拿v-bind举个例子。
            <!-- 准备好一个容器 -->
            <div class="root">
                <h1>插值语法</h1>
                <h1>hi {{ name }}</h1>
                <h1>指令语法</h1>
                <!-- v-bind: 可简写成 : -->
                <a v-bind:href="url">click to study</a>
                <a v-bind:href="url" :x="hello">click to study</a>
            </div>
        <script type="text/javascript">
            Vue.config.productionTip = false //阻止vue在启动是生成生产提示
            //创建vue实例
            const x = new Vue({
                el :'.root', // el用于指定当前vue实例为那个容器服务,值通常为css选择器字符串
                data:{ //data 用于存储数据 数据供el所指定的容器去使用 值先先写成一个对象
                    name:'madison',
                    url:'https://www.bilibili.com/',
                    hello:'hi'
                }
    
            })
    

    数据绑定

            <div id="root">
                单向数据绑定 <input type="text" :value="name"><br>
                双向数据绑定 <input type="text" v-model:value="name">
            </div>
        <script type="text/javascript">
            Vue.config.productionTip = false //阻止vue在启动是生成生产提示
            //创建vue实例
            const x = new Vue({
                el :'#root',
                data:{
                    name:'madison'
                }
    
            })
    
    image.png
    image.png

    v-model只能用在表单类元素


    image.png
    v-model:value="name"可简写成 v-model="name"

    el和data的两种写法

    • el
         <div id="root">
             <h1>hello {{ name }}</h1>
         </div>
        <script type="text/javascript">
            Vue.config.productionTip = false
            const v = new Vue({
                data:{
                    name:'Madison'
                }
            })
            console.log(v)
            v.$mount('#root')// 指向容器
        </script>
    

    另一种是之前的写法

    • data
            //data的两种写法
            new Vue({
                el:'#root',
                //data的第一种写法,对象式
                // data:{
                //     name: 'dkw'
                // }
                //data的第二种写法,函数式
                data:function () {//不能写成箭头函数,因为箭头函数的this是全局变量,window
                    console.log('@@@',this) //此处this是vue实例对象
                    return{
                        name:'dkw'
                    }
                }
            })
    
    image.png

    相关文章

      网友评论

          本文标题:vue -- 搭建环境,模板语法,数据绑定

          本文链接:https://www.haomeiwen.com/subject/ndqyirtx.html