注意!配置路由时引入组件的一个坑:路由对应组件导入错误
错误原因:自定义组件和框架组件名字重复,可能会错把框架的组件给 import 进来
解决:修改自定义组件的名称
import { ref } from 'vue';
import { Toast } from 'vant';
export default {
setup() {
const value = ref('');
const onSearch = (val) => Toast(val);
const onCancel = () => Toast('取消');
return {
value,
onSearch,
onCancel,
};
},
};
方法一:编程式导航路由跳转
引入 vue-router 的 { useRouter }
使用 router.push("/search"),导航到搜索页面
import {useRouter} from "vue-router";
const router = useRouter();
const onClickLeft = () => {
router.push('/search');
};
// 字符串路径
router.push('/users/eduardo')
// 带有路径的对象
router.push({ path: '/users/eduardo' })
// 命名的路由,并加上参数,让路由建立 url
router.push({ name: 'user', params: { username: 'eduardo' } })
// 带查询参数,结果是 /register?plan=private
router.push({ path: '/register', query: { plan: 'private' } })
// 带 hash,结果是 /about#team
router.push({ path: '/about', hash: '#team' })
方法二:声明式路由跳转
1. 选择 “可关闭的标签” 组件进行引入
标签
标签
标签
2. 引入分割线组件
文字
文字
3. 查看页面效果
1. 选择 TreeSelect 多选模式的分类选择组件作为选择标签的组件
import { ref } from 'vue';
export default {
setup() {
const activeId = ref([1, 2]);
const activeIndex = ref(0);
const items = [
{
text: '浙江',
children: [
{ text: '杭州', id: 1 },
{ text: '温州', id: 2 },
{ text: '宁波', id: 3, disabled: true },
],
},
{
text: '江苏',
children: [
{ text: '南京', id: 4 },
{ text: '无锡', id: 5 },
{ text: '徐州', id: 6 },
],
},
{ text: '福建', disabled: true },
];
return {
items,
activeId,
activeIndex,
};
},
};
2. 查看页面效果
1. 当用户选择标签后,要将所选标签展示在已选标签处
2. 通过组件提供的 activeIds 属性进行绑定
3. 使用 v-for 遍历 activeIds,并通过插值表达式展示标签数据
{{ tag }}
Vue 语法介绍:
- v-for 指令
- Vue 的内置指令
- 用于在模板中进行循环渲染,它能够根据源数据的数组或对象来生成重复的元素或组件
- 类似的指令还有 v-if、v-on 等
- {{ msg }} 插值表达式
- 最基本的数据绑定形式是文本插值,它使用的是“Mustache”语法 (即双大括号)
- 双大括号标签会被替换为相应组件实例中 msg属性的值。同时每次 msg 属性更改时它也会同步更新。
4. 查看效果
1. 遍历数组
-
{{ item }}
2. 使用对象进行循环
-
{{ key }}: {{ value }}