Vue框架-前端开发必备

        还记得一个月前仿写小米官网的练习,有友友建议用框架写,那个时候还没学习框架,想不到时间过得如此快,从本篇开始就进入Vue的学习啦。

目录

一、Vue入门

1.什么是Vue?

2.安装Vue

3.Vue的特点?

4.Vue与其它 JS 框架的关联

二、Vue基础

1.模板

2.数据绑定

3.事件绑定及事件修饰符

        1.事件绑定

        2.事件的修饰符

        3.键盘事件

        4.样式绑定

        5.表单


一、Vue入门

1.什么是Vue?

        Vue是一套用于构建用户界面的渐进式JavaScript框架。我们都知道框架可以帮助我们快速开发,之前应用过bootstrap框架。所谓框架,其实也是由一个个组件组合而成。

2.安装Vue

        Vue的网址:Vue.js

        在官网找到Vue的安装教程,主要是通过<script>标签引入或者使用npm下载。目前我们暂时先使用的是通过本地标签引入的方式。另外,我们需要安装Vue插件,方便在浏览器观察、调试数据。

        bug反馈:关于Devtools调试工具不亮、不出现的问题解决方案:关于Devtools调试工具不亮或者开发者工具不出现vue插件的问题_X-77的博客-CSDN博客

3.Vue的特点?

      1. Vue是遵循MVVM模式

                ◾M:模型(model):对应data中的数据

                ◾V:视图(View):模板

                ◾VM:视图模板(ViewModel):Vue实例对象

        2.编码简洁, 体积小, 运行效率高, 适合移动/PC 端开发

4.Vue与其它 JS 框架的关联

         1. 借鉴 Angular 的模板数据绑定技术

         2. 借鉴 React 的组件化虚拟 DOM 技术

二、Vue基础

1.模板

        在Vue中,由两种语法格式。

        1.插值语法

                -用于解析标签体内容

        2.指令语法

                -用于解析标签(包括:标签属性、标签体内容、绑定事件…)

                - Vue中有很多的指定,都是以v-开头

2.数据绑定

        在Vue中分为单向绑定和双向绑定。

       单向绑定(v-bind)

                -数据只能从data流向页面

                 -简写形式  ‘:’
        双向绑定(v-model)

                -数据不仅能从data流向页面,还可以从页面流向data。

                -双向绑定一般都应用在表单元素上。

                -简写形式 'v-model'

3.事件绑定及事件修饰符

        1.事件绑定

        在Vue中绑定事件使用v-on:xxx 或者 @xxx绑定事件  // xxx是事件名

        注意:绑定事件的默认形参为事件对象event,和原生js一样使用。如果既要传递参数又要使用event对象,则需要使用$event占位。

        2.事件的修饰符

        常见的事件修饰符如下:

命令描述
prevent阻止默认事件(常用)
stop阻止事件冒泡(常用)
once事件只触发一次(常用)
capture使用事件的捕获模式
self只有event.target是当前操作的元素才是触发事件
passive事件的默认行为立即执行,无需等待事件回调执行完毕

        3.键盘事件

                在Vue中,给我们准备了新的键盘事件。更方便我们去监听用户按下了什么键。常见的键盘事件的别名如下:

描述键盘事件
回车enter
删除delete (“删除”和“退格”)
退出esc
空格space
换行tab(需要搭配keydown)
up
down
left
right

        vue给我们提供的键盘事件是常用的,如果里面没有我们想要的键盘监听事件,可以通过以下几种方式创建:

                使用按键原始的key值绑定,组合词要转为a-b,例如CapsLock 转为 caps-lock
                使用keyCode指定具体的按键(不推荐)
                自定义按键名: Vue.config.keyCodes.自定义按键名 = 键码 

        4.样式绑定

        当我们需要动态的添加一些样式,我们就可以使用如下方法,Vue中提供了两种绑定样式的方法。

        1.通过class绑定样式

                -:class= "xxx" :适用于样式的类名确定,值需要动态指定

                -字符串写法:适用于样式的类名不确定,需要动态指定

                -数组写法:适用于要绑定的样式个数不确定,名字也不确定

                -对象写法:适用于要绑定的样式个数确定、名字也确定,但要动态决定用不用

        2.通过style绑定样式

                -对象写法 :   :style = "{ color: activeColor, fontSize: fontSize + 'px' }"  
                -数组写法: :style:"[a,b]" (用的少)

        5.表单

        前面有提到过,表单里面我们是通过v-model去进行双向绑定,这样当用户修改了数据,我们可以立马监听到并且做出响应。但是在不同类型的表单中,v-model的使用方式也不太一样。

        ◾若用户输入的数据就是value值,则v-model收集的是value值。

                例如<input type="text"/>

        ◾若标签没有value值,则需要手动添加一个value值,v-model才能收集到value值

                例如<input type="radio"/>

        ◾若是多选框,分为以下情况:
                没有配置input的value属性,那么收集的checked(勾选or未勾选,是布尔值)
                配置input的value值
                        非数组,那么收集的就是checked(勾选or未勾选,是布尔值)
                         数组,收集的就是value组成的数组

                例如<input type="checkbox"/>

        v-model的三个修饰符

        lazy:失去焦点再收集数据
        number:输入字符串转为有效的数字
        trim:输入首位空格过滤

表单案例:

<body>
    <div id="root">
        <form @submit.prevent="dome">
            账号:<input type="text" v-model.trim="userInfo.account"> <br /><br />
            密码:<input type="password" v-model="userInfo.password"> <br /><br />
            性别:
            <input type="radio" name="sex" value="man" v-model="userInfo.sex">男
            <input type="radio" name="sex" value="woman" v-model="userInfo.sex">女<br /><br />
            爱好:
            <input type="checkbox" v-model="userInfo.hobby" value="eat">吃饭
            <input type="checkbox" v-model="userInfo.hobby" value="sleep">睡觉
            <input type="checkbox" v-model="userInfo.hobby" value="game">打豆豆 <br /><br />
            所属校区:
            <select v-model="userInfo.city">
                <option value="-1">请选择校区</option>
                <option value="beijing">北京</option>
                <option value="shanghai">上海</option>
                <option value="chongqing">重庆</option>
            </select><br /><br />
            其他信息:
            <textarea name="" id="" cols="30" rows="5" v-model.lazy="userInfo.msg"></textarea> <br /><br />
            <input type="checkbox" v-model="userInfo.agree">阅读并接收<a href="javascript:;">《用户协议》</a><br /><br />
            <button type="submit">提交</button>
        </form>
    </div>
    <script>
        Vue.config.productionTip = false   //阻止 vue 在启动时生成生产提示。 
        const vm = new Vue({
            el: "#root",
            data: {
                userInfo: {
                    account: '',
                    password: '',
                    sex: '',
                    hobby: [],
                    city: '-1',
                    msg: '',
                    agree: ''
                }
            },
            methods: {
                dome(){
                    console.log(JSON.stringify(this.userInfo));
                }
            },
        })
    </script>
</body>

</html>

                


        本篇先写到这里~我们下篇见!

doge动图小表情

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值