Vued知识点

1.什么是Vue?

Vue是构建用户界面的渐进式框架

2、MVC和MVVM的区别?

MVC是后端分层开发的概念,MVVM是前端视图层的概念,关注视图层的分离,

MVC中的M是model,V是view,C是contorller,model是模型层用于与数据库进行交互,view是视图层用于与用户进行交互,contorller是调度层用于接受请求,处理请求,然后返回响应。

MVVM中的M是model,V是view,VM是viewModel,model是模型层进行业务逻辑,处理数据,view是视图层用于界面的展示,viewModel是用于把model和view进行双向绑定。

3、框架和库的区别

框架:是一套完整的解决方案,对项目的侵入性较大,如果需要更换框架,需要重新构建项目。

库:是提供一个小功能,对项目的侵入性较小,如果这个库无法实现这个功能,可以很容易的更换其他库完成。

4、插值表达式

插值表达式{undefined{}},可以在前后插入一些内容

5、vue指令界面防止闪烁?

v-cloak

6、v-text和v-html的区别?

v-text 只会返回标签的内容 不会把标签的效果渲染出

v-html 会带着标签效果一样显示,适合对接后台返回富文本内容

7、vue指令-属性绑定及简写?

v-bind 简写:

8、vue指令-事件绑定及简写?

v-on 简写@

9、vue事件修饰符?

.stop:阻止冒泡

.prevent:阻止默认事件

.capture:添加事件捕获模式

.once:事件只触发一次

.self:只有当事件作用于本身才能触发

10、vue指令-双向数据绑定?

v-model

原理:vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,首先是对数据进行监听,然后当监听的属性发生变化时则告诉订阅者是否要更新,若更新就会执行对应的更新函数从而更新视图。Object.defineProperty()来实现数据劫持的。

11、vue指令-循环渲染?

v-for

12、vue指令-显示隐藏

v-show、v-if

13、vue指令-v-for如何遍历对象、数组、数字

遍历对象:v-for=‘(value,key,index)’in list;

遍历数组:v-for=‘(item,index)’ in list;

遍历数字:v-for=‘num in 9’;

14、vue指令-v-for为什么设置key?

key:提高重排效率,就地复用。

key只能是数字或者字符串、必须是唯一的。

15、vue指令-v-if和v-show的区别?

v-if:删除dom元素,用于只修改一次的情况

v-show:设置display:none;,用于反复切换

16、vue绑定class方式?
数组::class="[]";

三目表达式::class="flag?'red':'green'";

对象::class="{}" 对象的属性值是布尔类型;

数组内置对象::class="[{}]";

17、vue绑定style方式?

对象::style="style";

数组路是对象::style="[]";

绑定方法,拿返回值;

18、vue过滤器全局和局部声明方式及使用?

通过vue.filter方法定义;

参数:过滤器的名字和过滤器执行函数

全局:vue.filter;

私有:vue.filters;

19、vue键盘修饰符使用?

监听所有按键:@keyup

监听指定按键:@keyup.按键码

20、vue键盘修饰符设置别名

Vue.config.keyCodes.a = 65

21、vue自定义指令全局和局部声明方式及使用?

指令的名字(定义的时候不加v-,使用vue指令的时候加上v-)

 对象,里面包含三个钩子方法

bind 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
inserted 这个元素已经渲染到界面上之后执行
update 当元素有更新的时候执行
 这三个方法的参数有哪些

1.el:指令所绑定的元素,可以用来直接操作 DOM 。
2.binding:一个对象,包含以下属性:
3.name:指令名,不包括 v- 前缀。
4.value:指令的绑定值,例如:v-my-directive="1 + 1" 中,绑定值为 2。
5.oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated钩子中可用。无论值是否改变都可用。
全局:vue.directive();

私有:vue.directives();

22、vue生命周期钩子函数有哪些?
23、vue生命周期钩子函数各阶段特点,什么作用?

// 生命周期
        beforeCreate() {
            // 一般用于页面重定向 
            console.log('beforeCreate');
            console.log(this.msg);
        },
      
        created() {
            // 一般用于接口请求 ,数据初始化
            console.log('created');
            console.log(this.msg);
        },
// 页面数据未更新,在内存中已经解析好模版,虚拟dom
        beforeMount() {
            console.log('beforeMount');
            // debugger
        },
        // 页面更新完成,需要依赖dom的操作,在此完成
        mounted() {
            console.log('mounted');
        },
// 触发0次或多次,数据更新前
        beforeUpdate() {
            console.log("beforeUpdate");
            console.log(this.msg);
            // debugger
        },
        // 数据更新后
        updated() {
            console.log("updated");
            console.log(this.msg);
        },
// 组件销毁前,清除定时器还有页面监听
        beforeDestroy() {
            console.log('beforeDestroy');
        },
        // 组件销毁后
        destroyed() {
            console.log('destroyed');
        },
24、vue-resource如何发送get,post请求?
25、vue-resource发送post请求第三个参数写什么?

getInfo() { // get 方式获取数据
this.$http.get('http://yapi.shangyuninfo.com/mock/36/web02/category').then(res => {
  console.log(res.body);
})
}
postInfo() {
var url = 'http://yapi.shangyuninfo.com/mock/36/web02/list/goods/category';
// post 方法接收三个参数:
// 参数1: 要请求的URL地址
// 参数2: 要发送的数据对象
// 参数3: 指定post提交的编码类型为 application/x-www-form-urlencoded
this.$http.post(url, {categoryId: 'zs' }, { emulateJSON: true }).then(res => {
  console.log(res.body);
});
}
26、axios发送get,post请求?
27、axios发送post请求使用内置参数对象是什么?

     axios.get("http://wkt.myhope365.com/weChat/applet/course/banner/list?number=3").then((res) => {
                        console.log(res);
                    })
    // post
                    // 内置对象
                let url = new URLSearchParams()
                    // let url = new FormData()
                    // 参数一 属性名称,参数二 属性值
                url.append('type', 'free')
                url.append('pageSize', 10)
                url.append('pageNum', 1)
                axios.post("http://wkt.myhope365.com/weChat/applet/course/list/type", url).then((res) => {
                    // console.log(res);
                    this.courseList = res.data.rows
                })
28、vue中过渡动画类名有哪些?transition

/* 入场动画 */

.v-enter、.v-enter-active、 .v-enter-to

 /* 离场动画 */

.v-leave、.v-leave-active、.v-leave-to

29、vue中过渡动画结合第三方插件使用?

先引入css,在写类名。

30、vue中过渡动画中钩子函数的使用?

<div id='app'>
        <input type="button" value="切换动画" @click="isshow = !isshow">
        <transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter">
            <div v-if="isshow" class="show">OK</div>
        </transition>
 
    </div>
 
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                isshow: true
            },
            methods: {
                beforeEnter(el) { // 动画进入之前的回调
                    console.log(el);
                    el.style.transform = 'translateX(500px)';
                },
                enter(el, done) { // 动画进入完成时候的回调
                    console.log(done);
                    el.offsetWidth;
                    el.style.transform = 'translateX(0px)';
                    done();
                },
                afterEnter(el) { // 动画进入完成之后的回调
                    console.log("3333");
                    this.isshow = !this.isshow;
                }
 
            }
        })
    </script>
31、vue中如何设置v-for列表动画?

<div id='app'>
        <button @click="flag=!flag"> 更改显示模式 </button>
        <button @click="deleteList"> 删除</button>
        <input type="text" v-model="txt" @keyup.enter="add">
        <transition-group tag="ul">
            <li v-show="flag" v-for="(item, i) in list" :key="i">{ {item}}</li>
        </transition-group>
    </div>
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                flag: true,
                txt: '',
                list: [1, 2, 3, 4]
            },
            methods: {
                add() {
                    this.list.push(this.txt);
                    this.txt = '';
                },
                deleteList() {
                    this.list.splice(0, 1)
                }
 
            },
        })

    </

目录

1.什么是Vue?

2、MVC和MVVM的区别?

3、框架和库的区别

4、插值表达式?

5、vue指令界面防止闪烁?

6、v-text和v-html的区别?

7、vue指令-属性绑定及简写?

8、vue指令-事件绑定及简写?

9、vue事件修饰符?

10、vue指令-双向数据绑定?

11、vue指令-循环渲染?

12、vue指令-显示隐藏

13、vue指令-v-for如何遍历对象、数组、数字

14、vue指令-v-for为什么设置key?

15、vue指令-v-if和v-show的区别?

16、vue绑定class方式?数组::class="[]";

17、vue绑定style方式?

18、vue过滤器全局和局部声明方式及使用?

19、vue键盘修饰符使用?

20、vue键盘修饰符设置别名

21、vue自定义指令全局和局部声明方式及使用?

22、vue生命周期钩子函数有哪些?23、vue生命周期钩子函数各阶段特点,什么作用?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值