vue入门基础知识

1: 脚手架环境安装 Vue

        => 安装脚手架依赖: cnpm i -g @vue/cli

2: 创建vue 项目

        => 在要创建项目的目录下 运行 cmd 执行命令: vue create xxx

        => 根据提示选择安装配置

        => 创建啊成功后 cd xxx

        => npm run serve

        => 运行成功后根据提示在浏览器中访问

3: 精简项目代码

        => 项目目录结构

                -> public 本地服务器的根目录

                -> src :

                        ->: assets : 静态资源文件, 图片视频等

                        -> components 管理公共组件的目录

                        -> router 管理路由的目录

                        -> views 管路视图的组件目录

                        -> App.vue 根组件

                        -> main.js 入口文件

                -> package.json   npm 的配置文件

    => 对App.vue 的精简

         <template>

                   <router-view></router-view>

        </template>

        <style>

                   html, body {

                        margin: 0;

                        padding: 0;

                        height:100%;

            }

        </style>

4: vue的核心指令

        => 文本指令: 

                -> v-text 

                ->  v-html

        => 流程控制

                -> v-if

                ->v-else-if

                ->v-else

                -> v-for : 其中 key 与 template 配合使用时, key 要声明在 子元素上, 因为 template在渲 染结束后会消失

         => 显示与隐藏

                -> v-show:  通过控制 display 属性来控制隐藏与否, v-if值为false时, 不会渲染 ,根据实际情况选择  v-if 或者 v-show

        => 属性绑定

                -> v-bind : 他的值一定是一个在 data 声明的变量或者 js 表达式

                -> style绑定

                        -> :style=""  的值为对象, 对象的属性是 css 的样式元素(以小驼峰式命名样式名, 属性名)

        -> class 绑定 :class="" 他的值为css中已经定义的样式名称

=> 事件处理

        -> v-on : 简写 @,  获取当前元素的事件对象

                        -> 事件修饰符:

                                @click.stop 阻止事件冒泡

                                @click.self 只有当元素自身被触发时才会执行时间函数, 事件冒泡传递来的不会执行

                                @click.capture: 在事件冒泡中优先执行

                                @click.prevent 阻止浏览器默认行为

                                @click.once  本次渲染完成后只会执行一次

                                @click.passive 忽略event.preventDefault()行为, 不能和 prevent 修饰符同时使用

                        -> 按键修饰符

                                .enter,           .tab,         .delete (捕获删除和退格键)        .esc        .space                       .up        .down        .left        .right

                        -> 系统修饰键

                        .ctrl        .alt        .shift        .meta

        => 表单绑定

                v-model 修饰符

                        -> .trim 去掉首尾空格, 

                        -> .number 如果是数字开头, 中间出现非数字内容, 只会保留第一部分的数字, 如果以非数字开头, 以字符串类型处理

                        .lazy, 失去焦点时才会执行双向绑定

        =>编译处理

                -> v-pre: 跳过当前元素, 及其子元素, 不进行编译

                -> v-once, 只会渲染一次

                -> v-cloak: 会一直保留在元素上面, 直到 Vue 编译完成后, 自动消失, 一般会配合 display 样式, 解决源代码闪烁问题

        => 插槽: 

                v-slot :

                        ->仅限与template 内置组件上使用

                        -> 简写 # 

                        -> 在自定义组件内部要 使用 < slot name="xxx">展示插槽中的子元素内容

        => data: 

                -> 在组件内, 必须是一个返回初始对象的函数

                -> 为了保证当前组件的多个实例不会直接共享data中的数据

        => props

                -> 接受父组件的传值

                -> 定义的prop 属性的一个对象, 该对象中共有四个属性

                        -> type: 设置当前属性的数据类型, 可以是使用数组的形式设置指定多种类型, 例如

                                [ String, Number, Boolean, Object, Function, Array, Date, Symbol ] 

                        -> default: 设置默认值, any 任意类型

                        -> required: 设置当前属性是否必填, 值为 true 时为必填选项

                        -> validator: 设置当前属性值的校验函数, 函数返回值为 true 时通过校验, 

                                props: {

                                        type: {

                                                validator: function (val){

                                [  'success', 'danger', 'error'].includes(val)

                }

        }

}

     => methods:  用于定义函数

     => watch:  用于监听data中响应式数据的变化,   深度监听  deep: true, 但是只能监听对象的恶属性改变, 无法监听基本数据类型, 如 list = [ 1, 2, 3, 4] 当中元素的值改变时无法监听到的

                

     => computed:

                ->: 计算属性

                 -> 有缓存, 当所依赖的响应式数据发生变化时, 才会重新计算

DOM 选项

        => el: 使用 css 选择器, 或者 html.docunment 对象的方法获取到页面中已经存在的 DOM 元素, 将该元素作为 Vue 实例的挂载目标

        => template: 

                -> 在自定义组件中用于创建 VNode 模板

                -> 声明的 VNode 模板中, 最外层只能有一个根元素

生命周期

        => beforeCreate

                -> 不能获取到vue实例的属性与方法

                -> 不能获取 dom 对象

        => created

                -> 能获取到 vue 实例的属性和方法

                -> 不能获取 DOM 对象

       => beforeMount

                -> 能获取到 vue 实例的属性和方法

                -> 不能获取 DOM 对象

      => mounted 

                -> 能获取到 vue实例的属性和方法

                -> 能获取 DOM 对象

      =>  beforeUpdate

                -> 当 data 中响应数据发生变化时, 会触发页面的渲染, 页面渲染前将调用该方法

                -> 在此方法获取的响应式数据的值为, 修改后的值

      => updated

                -> 响应式数据更新, 触发页面渲染, 页面渲染后将调用此方法

                -> 在此处可以获取更新后的 DOM 元素对象

       =>beforeDestroy

       => deatroyed

       =>activated

       =>deactivated

       =>errorCapturted

资源选项

        => filters

                -> 过滤器:

                -> {{ str | filterName }}

                -> 要过滤的内容会作为 filterName()参数, 他的返回值就是在页面要渲染的内容

                -> 过滤器链: {{ str | f1 | f2 }}:  第一个过滤器的返回值, 作为第二个过滤器的参数传入

        => directives

                -> 自定义指令

                -> 钩子函数

                        bind: 指令被绑定到元素上时, 只会执行一次

                        inserted: 被绑定的元素被插入到父节点时执行, 只会执行一次

                        update: 当虚拟 DOM 重新渲染时执行

                        componentUpdated  当虚拟 DOM 重新渲染完成后执行

                        unbind   指令与元素解绑时执行, 只会执行一次

                           -> 钩子函数的参数: 

                                el: 被绑定的 DOM 对象

                                binding: 是一个包含了指令的所有属性的对象:  name, rawName, value

                                vnode: Vue 编译生成的虚拟节点

                                oldVnode: 上一个虚拟节点, 仅在 update 和 componentUpdated 钩子函数中使用

        => components:  在当前组件内注册外部组件

内置组件: 

        => component 

                -> 动态组件

                -> is 属性:  指定当前要加载的组件名称

        => keep-alive: 

                -> 缓存动态组件

                -> 属性: 

                        -> include: 指定要缓存的组件名称

                         -> exclude 指定不要缓存的组件名称

                        -> max : 最大换存量 , 使用队列的数据结构

自定义组件: 

        => 先创建一个 .vue 的文件

        => 组件的三个组成部分,

                -> template  -> script   -> style

        => 在外部使用 import  xxx  from '...' 方式引入, 然后使用 components 选项注册该组件, 在外部的 <template>中用标签的形式进行使用

组件通信: 

        => 父组件传值子组件: 在子组件中使用 props 选项接受父组件的传值

        => 子组件传值父组件: 在父组件中声明子组件标签, 在子组件内部通过 $emit(eventname, [ 参数 ])触发当前子组件实例上的事件函数, 并间接传值

        => 兄弟组件传值: 先由第一个子组件传值给父组件, 然后再通过父组件传值给另一个子组件 

vue路由

        =>路由组件:<router-link to="跳转页面">    <router-view>占位符

        => 多级路由:

                -> 使用路由对象的 children: []

                -> 在设置了 children 属性路由对应的组件中, 声明 占位符, 用来加载二级路由指向的组件

                例如: { path: 'home'

                                component: () => import('@/views/Home.vue'),

                                children: []

}

        需要在 Home.vue 中 添加 < router-view>占位符

=> 重定向

        redirect: '/home'

        redirect: { path: '/home' } 或者 redirect: { name: home }

        redirect: (to) => { return '/home' }   重定向的值为函数时, 函数的参数to 表示要去的路由对象, 返回值为真正要去的路由的 path

=> 编程式导航 

        -> 路由跳转: 

                this.$router.push()

                this.$router.replace()

                this.$router.go()

                this.$router.back()

        -> 路由传参

                push({ path: '/home',  query: { id, name } })    在 Home.vue中接收参数, this.$router.query.id, 将参数拼接到 地址后面的? 后面, 类似于 get 请求,  刷新页面不会改变参数结果

                push({ name: 'home', params:{ id: name } })

                        -> 在 Home.vue 中接收参数,  this.$router.params.id

                        -> 将参数封装到内存的对象中传递, 地址栏不会显示, 类似于 post

                        -> 刷新页面会清空参数

全局 API 

        => Vue.component()

                -> 声明自定义组件

                -> 参数1: 组件名称

                -> 参数2: Vue 的实例对象

                
                     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值