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 的实例对象

                
                     

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值