当前位置 : 主页 > 网络编程 > JavaScript >

Vue零基础入门之模板语法与数据绑定及Object.defineProperty方法详解

来源:互联网 收集:自由互联 发布时间:2023-02-08
目录 初识vue 模板语法 插值语法 指令语法 数据绑定 单向绑定 双向绑定 el和data的两种写法 el data Object.defineProperty方法 事件处理 事件修饰符 键盘事件 定义命名(不常用) 初识vue vue工作时
目录
  • 初识vue
  • 模板语法
    • 插值语法
    • 指令语法
  • 数据绑定
    • 单向绑定
    • 双向绑定
  • el和data的两种写法
    • el
    • data
  • Object.defineProperty方法
    • 事件处理
      • 事件修饰符
        • 键盘事件
          • 定义命名(不常用)

        初识vue

        vue工作时,必须先创建Vue实例,且要传入一个配置对象

        容器内的代码依然符合html规范,混入了一些特殊的Vue语法

         <div id="root">
                <h1>hello,{{name}}</h1>
          </div>
        // 创建一个实例
                new Vue({
                    el:'#root',//el用于指定当前vue实例为那个容器使用,值通常为css选择器字符串
                    data:{ //data中用于存储数据,数据供el所指定的容器使用
                        name:'尚硅谷'
                    }
                })
        • Vue实例和容器是一一对应关系
        • {{xxx}}中的xxx要写js表达式,xxx可以自动读取到data中的所有属性
        • data数据一旦发生变化,模板中用到数据的地方也会发生变化

        模板语法

        插值语法

        {{xxx}},常写在标签体内

        指令语法

        • 用于解析标签(包括:标签属性、标签体内容、绑定事件…)
        • 形式均为v-xxx,如:v-bind
        <div id="root">
              <!-- 指令语法 -->
            	<a :href="url.toUpperCase()" rel="external nofollow" ></a>//js表达式执行
                <a v-bind:href="url" rel="external nofollow"  rel="external nofollow" >百度</a>
                <a :href="url" rel="external nofollow"  rel="external nofollow" >简写,百度</a>
            //使用v-bind指令后,href中的url即为js表达式,此处即为	http://baidu.com
            //v-bind指令可以简写为 :
            </div>
            <script type="text/javascript">
                  Vue.config.productionTip = false//防止在vue启动时产生提示
                new Vue({
                    el:'#root',
                    data:{
                        name:'三万小',
                        url:'http://baidu.com',
                    }
                })
            </script>

        数据绑定

        单向绑定

        v-bind:

        • 数据只能从data流向页面(页面数据改变时,data不改变;data改变页面也改变)
        • v-bind指令可以简写为

        双向绑定

        v-model:

        • data数据改变页面数据也改变,修改页面数据也可改变data
        • 一般应用于表单类元素上(即有value的,如input select等)
        • v-model:value可简写为 v-model=‘xxx’

        el和data的两种写法

        el

        • new Vue时配置el属性
        • 先创建vue实例,通过v.$mount(‘#root’)指定el的值

        data

        • 对象式
        • 函数式(学习组件时必须使用函数式写法)
        • 写函数式时,必须要return返回对象

        注:Vue管理的函数,不能写箭头函数,否则this指向不为Vue实例

        Object.defineProperty方法

        • 定义新属性或修改原有属性
        • Object.defineProperty(obj,props,descriptor)
        • 返回值是 传入函数的对象
               let person = {
                    name:'张三',
                    sex:"男"
                }
                // Object.defineProperty(对象名,需添加的属性名,方法属性)
                Object.defineProperty(person,'age',{
                    value:'18',//给person添加age:'18'
                    // enumerable:true,//控制属性是否可以枚举(遍历),默认值为false
                    // writable:true,//控制属性是否可以被修改,默认值为false
                    // configurable:true,//控制属性是否可以被删除,默认值为属性
        		}

        getter函数实现了,读取age时实际读取的是number

        setter函数实现了,修改age时,将age值给了number

        上一篇:JS实现羊了个羊小游戏实例
        下一篇:没有了
        网友评论