Skip to content

Commit f977b40

Browse files
committed
Update Readme-vue.md
1 parent 88ea8b2 commit f977b40

File tree

1 file changed

+14
-30
lines changed

1 file changed

+14
-30
lines changed

Subjects-vue.md

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
# vue
22

3-
1. vue 中 data 的属性可以和 methods 中的方法同名吗?为什么?
3+
1. :cloud:vue 中 data 的属性可以和 methods 中的方法同名吗?为什么?
44

5-
[Vue warn]: Method "myname" has already been defined as a data property.
5+
`[Vue warn]: Method "myname" has already been defined as a data property.`
66

7-
:cloud::cloud::cloud:
8-
9-
2. 你知道 `v-model` 的原理吗?
7+
2. :cloud:你知道 `v-model` 的原理吗?
108

119
`v-model` 為一個語法糖,Vue 會默認使用一個名為 value 的 prop,以及名為 input 的事件。
1210
為了避免不同的 value 有不同的作用,現在可以使用下面的方式自訂義自己想要的 `v-model` 行為。
@@ -21,50 +19,41 @@
2119
如果想要更改 checked 這個 prop 可以在 Vue 的 instance 中用以下這行程式發送 change 這個 event,並將目標的變動值傳給 checked 這個 prop。
2220
`this.$emit('change', $event.target.value);`
2321
24-
:cloud::cloud::cloud:
22+
3. :cloud:在 vue 项目中如果 methods 的方法用箭头函数定义结果会怎么样?
2523
26-
3. 在 vue 项目中如果 methods 的方法用箭头函数定义结果会怎么样?
2724
因为箭头函数默绑定父级作用域的上下文,所以不会绑定 vue 实例,所以 this 是 undefind
2825
29-
:cloud::cloud::cloud:
30-
31-
4. vue 渲染模板时怎么保留模板中的 HTML 注释呢?
26+
4. :cloud:vue 渲染模板时怎么保留模板中的 HTML 注释呢?
3227
3328
```
3429
<template comments>
3530
</template>
3631
```
3732
38-
:cloud::cloud::cloud:
39-
40-
5. vue 变量名如果以\_、$开头的属性会发生什么问题?怎么访问到它们的值?
33+
5. :cloud:vue 变量名如果以\_、$开头的属性会发生什么问题?怎么访问到它们的值?
4134
4235
以 \_ 或 $ 开头的 property 不会被 Vue 实例代理,因为它们可能和 Vue 内置的 property、API 方法冲突。你可以使用例如 `vm.$data.\_property` 的方式访问这些 property。
4336
[详见官方文档](https://cn.vuejs.org/v2/api/#data)
4437
45-
:cloud::cloud::cloud:
38+
6. :cloud:如何在子组件中访问父组件的实例?
4639
47-
6. 如何在子组件中访问父组件的实例?
4840
vue 中如果父组件想调用子组件的方法,可以在子组件中加上 ref,然后通过 this.$refs.ref.method 调用.[详见](https://www.cnblogs.com/jin-zhe/p/9523029.html)
4941
Vue 中子组件调用父组件的方法,这里有三种方法提供参考:[详见](https://www.cnblogs.com/jin-zhe/p/9523782.html)
5042
5143
1. 直接在子组件中通过 this.$parent.event 来调用父组件的方法
5244
2. 在子组件里用$emit 向父组件触发一个事件,父组件监听这个事件
5345
3. 父组件把方法传入子组件中,在子组件里直接调用这个方法
5446
55-
:cloud::cloud::cloud:
56-
57-
7. 你有使用过 `babel-polyfill` 模块吗?主要是用来做什么的?
47+
7. :cloud:你有使用过 `babel-polyfill` 模块吗?主要是用来做什么的?
5848
5949
Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转码。
6050
6151
举例来说,ES6 在 Array 对象上新增了 Array.from 方法。Babel 就不会转码这个方法。如果想让这个方法运行,必须使用 babel-polyfill,为当前环境提供一个垫片。
6252
6353
Babel 默认不转码的 API 非常多,详细清单可以查看 `babel-plugin-transform-runtime` 模块的 `definitions.js` 文件。
6454
65-
:cloud::cloud::cloud:
55+
8. :cloud:vue 边界情况有哪些?
6656
67-
8. vue 边界情况有哪些?
6857
[官方文档](https://cn.vuejs.org/v2/guide/components-edge-cases.html)
6958
7059
1. 访问元素 & 组件
@@ -73,14 +62,13 @@
7362
4. 模板定义的替代品
7463
5. 控制更新
7564
76-
:cloud::cloud::cloud:
65+
9. :cloud:实际工作中,你总结的 vue 最佳实践有哪些?
7766
78-
9. 实际工作中,你总结的 vue 最佳实践有哪些?
7967
[风格指南](https://cn.vuejs.org/v2/style-guide/)
8068
8169
> 规则归类=> A:必要的 B:强烈推荐 C:推荐 D:谨慎使用
82-
>
83-
> A:
70+
71+
A:
8472
8573
1. 组件名为多个单词
8674
@@ -103,19 +91,15 @@
10391
5. 避免 `v-if` 和 v-for 用在一起
10492
**永远不要把 `v-if` 和 `v-for` 同时用在同一个元素上。**
10593
106-
:cloud::cloud::cloud:
107-
108-
10. vue 使用 `v-for` 遍历对象时,是按什么顺序遍历的?如何保证顺序?
94+
10. :cloud:vue 使用 `v-for` 遍历对象时,是按什么顺序遍历的?如何保证顺序?
10995
11096
1、会先判断是否有 iterator 接口,如果有循环执行 next()方法
11197
11298
2、没有 iterator 的情况下,会调用 Object.keys()方法,在不同浏览器中,JS 引擎不能保证输出顺序一致
11399
114100
3、保证对象的输出顺序可以把对象放在数组中,作为数组的元素
115101
116-
:cloud::cloud::cloud:
117-
118-
11. vue 如果想扩展某个现有的组件时,怎么做呢?
102+
11. :cloud:vue 如果想扩展某个现有的组件时,怎么做呢?
119103
120104
1. 使用 Vue.extend 直接扩展
121105

0 commit comments

Comments
 (0)