1. 父传子有哪些方式
通过子组件的 props 选项接收父组件的传值
Vue.component('my-component',{
props:['title'],
template: '<h3>{{title}}</h3>'
})
父组件设置方式:
<div id="app">
<my-component-a ></my-component-a>
<my-component-a :></my-component-a>
<my-component-a :></my-component-a>
</div>
new Vue({
el:'#app',
data: {
item: {
title:'123'
}
}
})
2. 子传父有哪些方式
商品为子组件,购物车为父组件,父组件需要统计商品个数,就需要在子组件个数变化时传值给父组件。
new Vue({
el: '#app',
data: {
products: [
{
id: 1,
title: '苹果一斤'
},
{
id: 2,
title: '香蕉一根'
},
{
id: 3,
title: '橙子一个'
}
],
totalCount: 0
}
});
<div id="app">
<h3>购物车</h3>
<product-item
v-for="product in products"
:key="product.id"
:
//父组件监听子组件的自定义事件,并设置处理程序
@count-change="totalCount++"
></product-item>
<p>商品总个数为:{{ totalCount }}</p>
</div>
子组件向父组件传值
Vue.component('ProductItem', {
props: ['title'],
template: `
<div>
<span>商品名称: {{ title }}, 商品个数: {{ count }}</span>
<button @click="countIns">+1</button>
</div>
`,
data () {
return {
count: 0
}
},
//子组件数据变化时,通过 $emit() 触发自定义事件
methods: {
countIns () {
this.$emit('count-change');
this.count++;
}
}
});
3. 如何让 CSS 只在当前组件中起作用
将当前组件的<style>
修改为<style scoped>
4. keep-alive 的作用是什么
主要用于保留组件状态或避免组件重新渲染。
- include 属性用于指定哪些组件会被缓存,具有多种设置方式
- exclude 属性用于指定哪些组件不会被缓存
- max 属性用于设置最大缓存个数
5. vue中如何获取DOM
$refs
- $refs 用于获取设置了 ref 属性的 HTML 标签或子组件
- 给普通 HTML 标签设置 ref 属性,$refs 可以获取 DOM 对象
- 给子组件设置 ref 属性,渲染后可通过 $refs 获取子组件实例
6. 请说出 Vue CLI 项目中src目录每个文件夹的文件的用法
- assets 静态资源目录
- components 项目组件目录
- App.vue 根组件
- main.js 入口文件
7. 单页面应用的优缺点
优点:
- 前后端分离开发,提高了开发效率
- 业务场景切换时,局部更新结构
- 用户体验好,更加接近本地应用
缺点:
- 不利于 SEO
- 初次首屏加载速度较慢
- 页面复杂度比较高
8. $router
和$route
的区别
$router
其实是VueRouter的一个实例,所以它是一个全局对象,包含了所有的子对象和属性
而$route是正在跳转的这个路由的局部对象,可以获取这个正在跳转的路由的name,path,params,query等等
9. 怎么定义 vue-router 的动态路由? 怎么获取传过来的值?
Vue Router 提供了用于进行路由设置的组件 与 。
<div id="app">
<router-link to="/user/1">用户1</router-link>
<router-link to="/user/2">用户2</router-link>
<router-link to="/user/3">用户3</router-link>
<router-view></router-view>
</div>
定义路由中需要的组件,并进行路由规则设置
var User = {
template: `<div>这是用户 {{ $route.params.id }} 的功能</div>`
};
定义路由中需要的组件,并进行路由规则设置
var routes = [
{
path: '/user/:id', component: User
}
];
创建 Vue Router 实例,通过 routes 属性配置路由
var router = new VueRouter({ routes });
创建 Vue 实例,通过 router 属性注入路由
var vm = new Vue({
el: '#app',
router
});
- vue-router有几种模式,分别是什么
hash模式:
1.url路径会出现“#”号字符 2.hash值不包括在Http请求中,它是交由前端路由处理,所以改变hash值时不会刷新页面,也不会向服务器发送请求 3.hash值的改变会触发hashchange事件
history模式:
1.整个地址重新加载,可以保存历史记录,方便前进后退 2.依赖H5 API和后台配置,没有后台配置的话,页面刷新时会出现404
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!