Vue+element ui页面,怎么 *** 作dom元素

Vue+element ui页面,怎么 *** 作dom元素,第1张

直接在标签中添加click事件(@click=fn),然后在vue实例中的(methods)配置项里添加方法fn,实现你的功能。这样不行吗?vue框架不是不能用原生js获取dom元素,只是用框架就是为了避免 *** 作dom元素

Vue组件 本质上是一个有预定义选项的Vue实例,

指令 带有v- 前缀的特殊特性。作用是 当表达式的值改变时,将其长生的连带影响,响应式地作用于DOM

1 接收父组件传来的参数

组件标签中通过<blog-post post-title="hello!"></blog-post> 传入

2 子组件中js中的props:[postTitl]设置属性

3 可以设置数据类型

props:{

title:String,

likes:Number,

isPublished:Boolean,

commentIds:Array,

author:Object

}

4 接收动态赋值

5 传入一个对象的所有属性

6 prop 为单向数据流

所有的prop都是从父组件传到子组件,单向下行绑定,子组件不应该更改prop数据

允许更改的方法

7 替换合并

如果我们从父级组件传入的属性会替换掉子组件原本的属性但是如果是style class会合并起来

form-control,这是在组件的模板内设置好的

date-picker-theme-dark,这是从组件的父级传入的 他的class 为 form-control date-picker-theme-dark 两者合并

8 禁用特性继承

1 命名规则 事件命不会自动转化大小写。触发的事件命和监听的事件命必须一样

2 将原生事件绑定到组件上

在父组件中给子组件绑定一个原生的事件,就将子组件变成普通的HTML标签,不加"native"事件无法触发

3 $listeners

4 sync修饰符

当一个子组件改变了一个prop中的值时。父组件中的值也改变

注意

有多个属性时当做对象传入

1 语法

2 编译作用域

3 具名插槽

4 作用域插槽

可以从子组件接收数据,并定义渲染的方式

使用is特性来切换组件

<keep-alive> 将元素动态组件包括起来,组件会被缓存

注意被包括的组件都有自己的名字,不论是name属性 还是局部/全局注册的

定义的时候什么都不做,只有在组件渲染的时候进行加载并缓存,以备下次访问

Vue实现按需加载

异步加载的组件在打包的时候,会打包成单独的js文件。通过ajax请求回来插入到HTML中。

1 每个new Vue实例的组件中。根实例都可以通过$root属性进行访问

2 ref获取DOM

给元素或组件一个ID然后在js中调用它

3 依赖注入provide inject

在父组件中使用provide定义个属性或者方法

在他的任意子组件中通过inject接收它

4 程序化的监听事件监听

1 父组件通过props把数据传给子组件

2 子组件可以使用$emit触发父组件的自定义事件

5 递归组件

组件可以在他自己的模板中调用自己。必须有name属性,没有name这个属性组件不能自己调用自己,递归的时候需要一个条件来终止递归,v-for

1 基本语法

主要用来服务Vuecomponent用来生成组件的。

简单说在模板中遇到以该组件命名的自定义标签时,会自动的调用扩展实构造器来生成组件,挂载到自定义元素标签上

Vuecomponent如果传入的普通对象内部会自动调用Vueextend()生成对象组件然后通过Vuecomponent注册

将一些可复用的方法属性封装起来再需要的组件中使用(类似于resetcss)

1 如果混入的属性和方法与原来组件重合会与组件中的为主

2 混入对象的选项在元组件的选项之前调用

全局混入(全局注册的混入对象)

获取不到DOM的解决方案(使用$nextTick)

定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

理解:nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数

使用场景:

11、Vue生命周期的created()钩子函数进行的DOM *** 作一定要放在VuenextTick()的回调函数中,原因是在created()钩子函数执行的时候DOM 其实并未进行任何渲染,而此时进行DOM *** 作无异于徒劳,所以此处一定要将DOM *** 作的js代码放进VuenextTick()的回调函数中。与之对应的就是mounted钩子函数,因为该钩子函数执行时所有的DOM挂载已完成。

12、当项目中你想在改变DOM元素的数据后基于新的dom做点什么,对新DOM一系列的js *** 作都需要放进VuenextTick()的回调函数中;通俗的理解是:更改数据后当你想立即使用js *** 作新的视图的时候需要使用它

13、在使用某个第三方插件时 ,希望在vue生成的某些dom动态发生变化时重新应用该插件,也会用到该方法,这时候就需要在 $nextTick 的回调函数中执行重新应用插件的方法。

我在获取到数据后赋值给数据模型中list属性,然后我想引用ul元素找到第一个li把它的颜色变为红色,但是事实上,这个要报错了,我们知道,在执行这句话时,ul下面并没有li,也就是说刚刚进行的赋值 *** 作,当前并没有引起视图层的更新。因此,在这样的情况下,vue给我们提供了$nextTick方法,如果我们想对未来更新后的视图进行 *** 作,我们只需要把要执行的函数传递给this$nextTick方法,vue就会给我们做这个工作。

### 表单校验

rules属性绑定

data中定义规则

表单item上prop属性绑定

注意点:  prop的值和规则的值以及表单的值需要保持一致

### 在vue中如何获取dom元素

    - 定义属性

    <div ref='qqq' @click="btn">111111</div>

    - 获取:this$refsqqq

### 如何携带token

登录成功的时候将获取的token做本地缓存

需要做请求拦截====其他所有请求需要携带请求头  Authorization

    - api/indexjs

        - 做请求拦截    获取本地缓存

        - 将本都缓存的值添加到请求头上面去

###  左侧菜单数据展示

    - 封装函数  ===获取左侧菜单数据请求的函数    api/indexjs

    - homevue

        + 导入封装请求函数

        + 调用这个函数获取数据,并且将数据 赋值给data中的menuList

        + 将数据循环出来 ====进行2层循环

    步骤分析:

    - 静态组件布局编写===从官网复制过来

    - 动态渲染左侧菜单导航===将获取的请求数据使用循环

    - 配置属性默认值展开一个  ====查看官网配置属性

    - 配置路由实现显示对应的组件

###  做菜菜单导航图标的显示

+ 引入iconfontcss文件      mainjs中引入

+ 一级图标

    - 准备一个对象或者数组

          iconObj: {

            0: 'icon-user',

            1: 'icon-tijikongjian',

            2: 'icon-shangpin',

            3: 'icon-danju',

            4: 'icon-baobiao'

        },

    - 图标标签属性绑定  class  然后根据索引找到对象中的哪一个类名进行显示

+ 二级图标====直接在二级循环标题前面提加图标标签====写死

#### 左侧菜单步骤分析:

    - 1-显示组件菜单=====从官网复制

    - 2-只展开一个  通过控制  index

    - 3-配置路由 ===点击谁右边就显示哪一个组件 

        + 配置项上面添加一个router属性  :router="true"

        + 配置唯一值index的值为path值=====:index="item2path

    - 4-改变默认高亮颜色  active-text-color="#00ff00"

    - 5-点击当前只展开其他收起  :unique-opened="true"

    - 6-刷新保持最后一次的高亮 

        + 设置默认展开项  :default-active="defaultActive"

        + 点击

            + 给当前每一项的二级菜单  绑定点击事件 并且获取当前的path值

            + 将这个值赋值给 defaultActive 并且做本地缓存刷新的时候还可以获取上一次的path值

            + 刷新后获取这个值  defaultActive=从本都缓存中拿 ||  'users'

    - 7-解决二级菜单的每一项的右边框    el-menu {border:none;}

    - 8-点击收起菜单功能

        + 布局一个按钮  点击按钮

        + 点击设置 collapse=true  or  false 

        + 改变左侧侧边栏宽度样式的设置    <el-aside :width="collapse'64px':'200px'">

        + 关闭收起和展开的动画  :collapse-transition="false"

  ###  路由拦截

  路由拦截和请求拦截的区别

  请求拦截=====只要请求就拦截

  路由拦截====只要路由值发生改变就拦截

  ###  如何设置路由拦截

    + 在router文件中设置路由前置拦截  routerbeforeEach((to,form,next)=>{})

    + 判断是不是lofgin路由值  是 就直接放行,

    + 判断是不是有token  有token就放行 没有就去login

    + 最后解决掉了问题会出现兼容性  解决方法如下

    const originalPush = VueRouterprototypepush;

    VueRouterprototypepush = function push(location) {

    return originalPushcall(this, location)catch(err => err);

    };

以上就是关于Vue+element ui页面,怎么 *** 作dom元素全部的内容,包括:Vue+element ui页面,怎么 *** 作dom元素、vue官网总结、vue深层对象绑定不了dom等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9504986.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存